-
Notifications
You must be signed in to change notification settings - Fork 55
Expand file tree
/
Copy pathpython.min.js
More file actions
7 lines (7 loc) · 164 KB
/
Copy pathpython.min.js
File metadata and controls
7 lines (7 loc) · 164 KB
1
2
3
4
5
6
7
/*! aether 2017-01-23 */
!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){!function(a,d){"object"==typeof c&&"object"==typeof b?b.exports=d():"function"==typeof define&&define.amd?define([],d):"object"==typeof c?c.filbert=d():a.filbert=d()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(a,b){for(var c=-1,d=0;d<b.length&&!(b[d]>a);++d)c=d;var e=c>=0?b[c]:0;return{line:c+2,column:a-e,pos:a}}function e(a,b,c){var d=0;return a>2&&a-2<c.length&&(d=c[a-2]),d+b}function f(a,b,c,g){var h=e(a.lineno,a.col_offset,c),i=[h===h?h:1/0,h===h?h:-(1/0)];if(a.value&&(i[1]+=a.value.length),a.children)for(var j=0;j<a.children.length;++j){var k=f(a.children[j],b,c,g);i[0]=Math.min(i[0],k[0]),i[1]=Math.max(i[1],k[1])}return g.ranges&&(a.range=i),g.locations&&(a.loc={start:d(i[0],c),end:d(i[1],c)}),g.snippets&&(a.str=b.substring(i[0],i[1])),i}function g(a,b){var c,d,g=[],l=-1;b=b||{};for(var m in k)m in b||(b[m]=k[m]);for(;;){if(l=a.indexOf("\n",l+1),0>l)break;g.push(l+1)}try{c=h.parse(b.filename,a),f(c.cst,a,g,b),c.flags=c.flags|h.Parser.CO_FUTURE_UNICODE_LITERALS,d=h.astFromParse(c.cst,b.filename,c.flags)}catch(n){throw n.extra&&n.extra.node&&f(n.extra.node,a,g,b),j(n,b,a),n.loc&&(n.pos=e(n.loc.line,n.loc.column,g)),n}var o={varType:b.useLet?"let":"var"},p=i(d,o);return p}var h=c(1),i=c(2),j=c(3),k={locations:!0,ranges:!0,sippets:!0,filename:"file.py",useLet:!1,friendlyErrors:!0};a.exports={parse:g,pythonRuntime:c(4),defaultOptions:{runtimeParamName:"__pythonRuntime"}}},function(a,b){(function(b){function c(a){var b=Array.prototype.slice.call(arguments);return"("+b.join("|")+")"}function d(a){return c.apply(null,arguments)+"?"}function e(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1}function f(a,b){var c;for(c=a.length;c>0&&-1!==b.indexOf(a.charAt(c-1));--c);return a.substring(0,c)}function g(a,b){return this.filename=a,this.grammar=b,this.p_flags=0,this}function h(a,b){for(var c=a.length;c--;)if(a[c][0]===b[0]&&a[c][1]===b[1])return!0;return!1}function i(a,b){var c,d,e,f,h,i,j,k;void 0===b&&(b="file_input"),k=new g(a,cc.ParseTables),"file_input"===b?k.setup(cc.ParseTables.sym.file_input):bc.asserts.fail("todo;"),j=1,i=0,h="",f=cc.Tokenizer.Tokens.T_COMMENT,e=cc.Tokenizer.Tokens.T_NL,d=cc.Tokenizer.Tokens.T_OP,c=new cc.Tokenizer(a,"single_input"===b,function(a,b,c,g,l){c[0],c[1];return a===f||a===e?(h+=b,j=g[0],i=g[1],void("\n"===b[b.length-1]&&(j+=1,i=0))):(a===d&&(a=cc.OpMap[b]),k.addtoken(a,b,[c,g,l])?!0:void 0)});var l=function(a){var b=c.generateTokens(a);if(b){if("done"!==b)throw new cc.builtin.SyntaxError("incomplete input",this.filename);return k.rootnode}return!1};return l.p_flags=k.p_flags,l}function j(){}function k(){}function l(){}function m(){}function n(){}function o(){}function p(){}function q(){}function r(){}function s(){}function t(){}function u(){}function v(){}function w(){}function x(){}function y(){}function z(){}function A(){}function B(){}function C(){}function D(){}function E(){}function F(){}function G(){}function H(){}function I(){}function J(){}function K(){}function L(){}function M(){}function N(){}function O(){}function P(){}function Q(){}function R(a){return this.body=a,this}function S(a){return this.body=a,this}function T(a){return bc.asserts.assert(null!==a&&void 0!==a),this.body=a,this}function U(a){return this.body=a,this}function V(a,b,c,d,e,f){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.name=a,this.args=b,this.body=c,this.decorator_list=d,this.lineno=e,this.col_offset=f,this}function W(a,b,c,d,e,f){return bc.asserts.assert(null!==a&&void 0!==a),this.name=a,this.bases=b,this.body=c,this.decorator_list=d,this.lineno=e,this.col_offset=f,this}function X(a,b,c){return this.value=a,this.lineno=b,this.col_offset=c,this}function Y(a,b,c){return this.targets=a,this.lineno=b,this.col_offset=c,this}function Z(a,b,c,d){return bc.asserts.assert(null!==b&&void 0!==b),this.targets=a,this.value=b,this.lineno=c,this.col_offset=d,this}function $(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),bc.asserts.assert(null!==c&&void 0!==c),this.target=a,this.op=b,this.value=c,this.lineno=d,this.col_offset=e,this}function _(a,b,c,d,e){return this.dest=a,this.values=b,this.nl=c,this.lineno=d,this.col_offset=e,this}function aa(a,b,c,d,e,f){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.target=a,this.iter=b,this.body=c,this.orelse=d,this.lineno=e,this.col_offset=f,this}function ba(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.test=a,this.body=b,this.orelse=c,this.lineno=d,this.col_offset=e,this}function ca(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.test=a,this.body=b,this.orelse=c,this.lineno=d,this.col_offset=e,this}function da(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.context_expr=a,this.optional_vars=b,this.body=c,this.lineno=d,this.col_offset=e,this}function ea(a,b,c,d,e){return this.type=a,this.inst=b,this.tback=c,this.lineno=d,this.col_offset=e,this}function fa(a,b,c,d,e){return this.body=a,this.handlers=b,this.orelse=c,this.lineno=d,this.col_offset=e,this}function ga(a,b,c,d){return this.body=a,this.finalbody=b,this.lineno=c,this.col_offset=d,this}function ha(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),this.test=a,this.msg=b,this.lineno=c,this.col_offset=d,this}function ia(a,b,c){return this.names=a,this.lineno=b,this.col_offset=c,this}function ja(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.module=a,this.names=b,this.level=c,this.lineno=d,this.col_offset=e,this}function ka(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.body=a,this.globals=b,this.locals=c,this.lineno=d,this.col_offset=e,this}function la(a,b,c){return this.names=a,this.lineno=b,this.col_offset=c,this}function ma(a,b,c){return bc.asserts.assert(null!==a&&void 0!==a),this.value=a,this.lineno=b,this.col_offset=c,this}function na(a,b){return this.lineno=a,this.col_offset=b,this}function oa(a,b){return this.lineno=a,this.col_offset=b,this}function pa(a,b){return this.lineno=a,this.col_offset=b,this}function qa(a,b){return this.lineno=a,this.col_offset=b,this}function ra(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),this.op=a,this.values=b,this.lineno=c,this.col_offset=d,this}function sa(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),bc.asserts.assert(null!==c&&void 0!==c),this.left=a,this.op=b,this.right=c,this.lineno=d,this.col_offset=e,this}function ta(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.op=a,this.operand=b,this.lineno=c,this.col_offset=d,this}function ua(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.args=a,this.body=b,this.lineno=c,this.col_offset=d,this}function va(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),bc.asserts.assert(null!==c&&void 0!==c),this.test=a,this.body=b,this.orelse=c,this.lineno=d,this.col_offset=e,this}function wa(a,b,c,d){return this.keys=a,this.values=b,this.lineno=c,this.col_offset=d,this}function xa(a,b,c){return this.elts=a,this.lineno=b,this.col_offset=c,this}function ya(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),this.elt=a,this.generators=b,this.lineno=c,this.col_offset=d,this}function za(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),this.elt=a,this.generators=b,this.lineno=c,this.col_offset=d,this}function Aa(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.key=a,this.value=b,this.generators=c,this.lineno=d,this.col_offset=e,this}function Ba(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),this.elt=a,this.generators=b,this.lineno=c,this.col_offset=d,this}function Ca(a,b,c){return this.value=a,this.lineno=b,this.col_offset=c,this}function Da(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),this.left=a,this.ops=b,this.comparators=c,this.lineno=d,this.col_offset=e,this}function Ea(a,b,c,d,e,f,g){return bc.asserts.assert(null!==a&&void 0!==a),this.func=a,this.args=b,this.keywords=c,this.starargs=d,this.kwargs=e,this.lineno=f,this.col_offset=g,this}function Fa(a,b,c){return bc.asserts.assert(null!==a&&void 0!==a),this.value=a,this.lineno=b,this.col_offset=c,this}function Ga(a,b,c){return bc.asserts.assert(null!==a&&void 0!==a),this.n=a,this.lineno=b,this.col_offset=c,this}function Ha(a,b,c){return bc.asserts.assert(null!==a&&void 0!==a),this.s=a,this.lineno=b,this.col_offset=c,this}function Ia(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),bc.asserts.assert(null!==c&&void 0!==c),this.value=a,this.attr=b,this.ctx=c,this.lineno=d,this.col_offset=e,this}function Ja(a,b,c,d,e){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),bc.asserts.assert(null!==c&&void 0!==c),this.value=a,this.slice=b,this.ctx=c,this.lineno=d,this.col_offset=e,this}function Ka(a,b,c,d){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.id=a,this.ctx=b,this.lineno=c,this.col_offset=d,this}function La(a,b,c,d){return bc.asserts.assert(null!==b&&void 0!==b),this.elts=a,this.ctx=b,this.lineno=c,this.col_offset=d,this}function Ma(a,b,c,d){return bc.asserts.assert(null!==b&&void 0!==b),this.elts=a,this.ctx=b,this.lineno=c,this.col_offset=d,this}function Na(){return this}function Oa(a,b,c){return this.lower=a,this.upper=b,this.step=c,this}function Pa(a){return this.dims=a,this}function Qa(a){return bc.asserts.assert(null!==a&&void 0!==a),this.value=a,this}function Ra(a,b,c){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.target=a,this.iter=b,this.ifs=c,this}function Sa(a,b,c,d,e){return this.type=a,this.name=b,this.body=c,this.lineno=d,this.col_offset=e,this}function Ta(a,b,c,d){return this.args=a,this.vararg=b,this.kwarg=c,this.defaults=d,this}function Ua(a,b){return bc.asserts.assert(null!==a&&void 0!==a),bc.asserts.assert(null!==b&&void 0!==b),this.arg=a,this.value=b,this}function Va(a,b){return bc.asserts.assert(null!==a&&void 0!==a),this.name=a,this.asname=b,this}function Wa(a,b,c){this.c_encoding=a,this.c_filename=b,this.c_flags=c||0}function Xa(a){return bc.asserts.assert(void 0!==a),null===a.children?0:a.children.length}function Ya(a,b){return bc.asserts.assert(void 0!==a),bc.asserts.assert(void 0!==b),a.children[b]}function Za(a,b){bc.asserts.assert(a.type===b,"node wasn't expected type")}function $a(a){return bc.asserts.assert("string"==typeof a,"expecting string, got "+typeof a),new cc.builtin.str(a)}function _a(a){var b,c,d;switch(a.type){case Gc.single_input:return Ya(a,0).type===Hc.T_NEWLINE?0:_a(Ya(a,0));case Gc.file_input:for(d=0,c=0;c<Xa(a);++c)b=Ya(a,c),b.type===Gc.stmt&&(d+=_a(b));return d;case Gc.stmt:return _a(Ya(a,0));case Gc.compound_stmt:return 1;case Gc.simple_stmt:return Math.floor(Xa(a)/2);case Gc.suite:if(1===Xa(a))return _a(Ya(a,0));for(d=0,c=2;c<Xa(a)-1;++c)d+=_a(Ya(a,c));return d;default:bc.asserts.fail("Non-statement found")}return 0}function ab(a,b,c,d){if("None"===c)throw new cc.builtin.SyntaxError("assignment to None",a.c_filename,d,[],{node:b});if("True"===c||"False"===c)throw new cc.builtin.SyntaxError("assignment to True or False is forbidden",a.c_filename,d,[],{node:b})}function bb(a,b,c,d){var e,f,g;switch(bc.asserts.assert(c!==n&&c!==m),g=null,f=null,b.constructor){case Ia:case Ka:c===k&&ab(a,d,b.attr,d.lineno),b.ctx=c;break;case Ja:b.ctx=c;break;case La:b.ctx=c,g=b.elts;break;case Ma:if(0===b.elts.length)throw new cc.builtin.SyntaxError("can't assign to ()",a.c_filename,d.lineno,c,{node:d});b.ctx=c,g=b.elts;break;case ua:f="lambda";break;case Ea:f="function call";break;case ra:case sa:case ta:f="operator";break;case Ba:f="generator expression";break;case Ca:f="yield expression";break;case ya:f="list comprehension";break;case za:f="set comprehension";break;case Aa:f="dict comprehension";break;case wa:case xa:case Ga:case Ha:f="literal";break;case Da:f="comparison";break;case Fa:f="repr";break;case va:f="conditional expression";break;default:bc.asserts.fail("unhandled expression in assignment")}if(f)throw new cc.builtin.SyntaxError("can't "+(c===k?"assign to":"delete")+" "+f,a.c_filename,d.lineno,[],{node:d});if(g)for(e=0;e<g.length;++e)bb(a,g[e],c,d)}function cb(a){return bc.asserts.assert(void 0!==Kc[a.type]),Kc[a.type]}function db(a,b){if(Za(b,Gc.comp_op),1===Xa(b))switch(b=Ya(b,0),b.type){case Hc.T_LESS:return J;case Hc.T_GREATER:return L;case Hc.T_EQEQUAL:return H;case Hc.T_LESSEQUAL:return K;case Hc.T_GREATEREQUAL:return M;case Hc.T_NOTEQUAL:return I;case Hc.T_NAME:if("in"===b.value)return P;if("is"===b.value)return N}else if(2===Xa(b)&&Ya(b,0).type===Hc.T_NAME){if("in"===Ya(b,1).value)return Q;if("is"===Ya(b,0).value)return O}bc.asserts.fail("invalid comp_op")}function eb(a,b){var c,d=[];for(bc.asserts.assert(b.type===Gc.testlist||b.type===Gc.listmaker||b.type===Gc.testlist_comp||b.type===Gc.testlist_safe||b.type===Gc.testlist1),c=0;c<Xa(b);c+=2)bc.asserts.assert(Ya(b,c).type===Gc.test||Ya(b,c).type===Gc.old_test),d[c/2]=Zb(a,Ya(b,c));return d}function fb(a,b){var c,d,e,f,g,h,i;if(Za(b,Gc.suite),i=[],h=0,Ya(b,0).type===Gc.simple_stmt)for(b=Ya(b,0),f=Xa(b)-1,Ya(b,f-1).type===Hc.T_SEMI&&(f-=1),e=0;f>e;e+=2)i[h++]=_b(a,Ya(b,e));else for(e=2;e<Xa(b)-1;++e)if(g=Ya(b,e),Za(g,Gc.stmt),d=_a(g),1===d)i[h++]=_b(a,g);else for(g=Ya(g,0),Za(g,Gc.simple_stmt),c=0;c<Xa(g);c+=2){if(0===Xa(Ya(g,c))){bc.asserts.assert(c+1===Xa(g));break}i[h++]=_b(a,Ya(g,c))}return bc.asserts.assert(h===_a(b)),i}function gb(a,b,c){var d;return Za(b,Gc.except_clause),Za(c,Gc.suite),1===Xa(b)?new Sa(null,null,fb(a,c),b.lineno,b.col_offset):2===Xa(b)?new Sa(Zb(a,Ya(b,1)),null,fb(a,c),b.lineno,b.col_offset):4===Xa(b)?(d=Zb(a,Ya(b,3)),bb(a,d,k,Ya(b,3)),new Sa(Zb(a,Ya(b,1)),d,fb(a,c),b.lineno,b.col_offset)):void bc.asserts.fail("wrong number of children for except clause")}function hb(a,b){var c,d,e,f,g=Xa(b),h=(g-3)/3,i=[],j=null;if(Za(b,Gc.try_stmt),f=fb(a,Ya(b,2)),Ya(b,g-3).type===Hc.T_NAME)"finally"===Ya(b,g-3).value?(g>=9&&Ya(b,g-6).type===Hc.T_NAME&&(i=fb(a,Ya(b,g-4)),h--),j=fb(a,Ya(b,g-1)),h--):(i=fb(a,Ya(b,g-1)),h--);else if(Ya(b,g-3).type!==Gc.except_clause)throw new cc.builtin.SyntaxError("malformed 'try' statement",a.c_filename,b.lineno);if(h>0){for(e=[],d=0;h>d;++d)e[d]=gb(a,Ya(b,3+3*d),Ya(b,5+3*d));if(c=new fa(f,e,i,b.lineno,b.col_offset),!j)return c;f=[c]}return bc.asserts.assert(null!==j),new ga(f,j,b.lineno,b.col_offset)}function ib(a,b){var c,d,e,f,g;for(Za(b,Gc.dotted_name),g=b.lineno,f=b.col_offset,e=$a(Ya(b,0).value),d=new Ka(e,j,g,f),c=2;c<Xa(b);c+=2)e=$a(Ya(b,c).value),d=new Ia(d,e,j,g,f);return d}function jb(a,b){var c;return Za(b,Gc.decorator),Za(Ya(b,0),Hc.T_AT),Za(Ya(b,Xa(b)-1),Hc.T_NEWLINE),c=ib(a,Ya(b,1)),3===Xa(b)?c:5===Xa(b)?new Ea(c,[],[],null,null,b.lineno,b.col_offset):Ab(a,Ya(b,3),c)}function kb(a,b){var c,d;for(Za(b,Gc.decorators),d=[],c=0;c<Xa(b);++c)d[c]=jb(a,Ya(b,c));return d}function lb(a,b){var c,d;return Za(b,Gc.decorated),d=kb(a,Ya(b,0)),bc.asserts.assert(Ya(b,1).type===Gc.funcdef||Ya(b,1).type===Gc.classdef),c=null,Ya(b,1).type===Gc.funcdef?c=Eb(a,Ya(b,1),d):Ya(b,1)===Gc.classdef&&(c=Gb(a,Ya(b,1),d)),c&&(c.lineno=b.lineno,c.col_offset=b.col_offset),c}function mb(a,b){return Za(b,Gc.with_item),Zb(a,Ya(b,1))}function nb(a,b){var c,d,e=3;return bc.asserts.assert(b.type===Gc.with_stmt),d=Zb(a,Ya(b,1)),Ya(b,2).type===Gc.with_item&&(c=mb(a,Ya(b,2)),bb(a,c,k,b),e=4),new da(d,c,fb(a,Ya(b,e)),b.lineno,b.col_offset)}function ob(a,b){var c,d=null,e=null,f=Xa(b);return bc.asserts.assert(2===f||4===f||6===f),Za(b,Gc.exec_stmt),c=Zb(a,Ya(b,1)),f>=4&&(d=Zb(a,Ya(b,3))),6===f&&(e=Zb(a,Ya(b,5))),new ka(c,d,e,b.lineno,b.col_offset)}function pb(a,b){var c,d,e,f,g,h,i;if(Za(b,Gc.if_stmt),4===Xa(b))return new ca(Zb(a,Ya(b,1)),fb(a,Ya(b,3)),[],b.lineno,b.col_offset);if(i=Ya(b,4).value,h=i.charAt(2),"s"===h)return new ca(Zb(a,Ya(b,1)),fb(a,Ya(b,3)),fb(a,Ya(b,6)),b.lineno,b.col_offset);if("i"===h){for(g=Xa(b)-4,f=!1,e=[],Ya(b,g+1).type===Hc.T_NAME&&"s"===Ya(b,g+1).value.charAt(2)&&(f=!0,g-=3),g/=4,f&&(e=[new ca(Zb(a,Ya(b,Xa(b)-6)),fb(a,Ya(b,Xa(b)-4)),fb(a,Ya(b,Xa(b)-1)),Ya(b,Xa(b)-6).lineno,Ya(b,Xa(b)-6).col_offset)],g--),d=0;g>d;++d)c=5+4*(g-d-1),e=[new ca(Zb(a,Ya(b,c)),fb(a,Ya(b,c+2)),e,Ya(b,c).lineno,Ya(b,c).col_offset)];return new ca(Zb(a,Ya(b,1)),fb(a,Ya(b,3)),e,b.lineno,b.col_offset)}bc.asserts.fail("unexpected token in 'if' statement")}function qb(a,b,c){var d,e,f;for(Za(b,Gc.exprlist),f=[],e=0;e<Xa(b);e+=2)d=Zb(a,Ya(b,e)),f[e/2]=d,c&&bb(a,d,c,Ya(b,e));return f}function rb(a,b){return Za(b,Gc.del_stmt),new Y(qb(a,Ya(b,1),l),b.lineno,b.col_offset)}function sb(a,b){var c,d=[];for(Za(b,Gc.global_stmt),c=1;c<Xa(b);c+=2)d[(c-1)/2]=$a(Ya(b,c).value);return new la(d,b.lineno,b.col_offset)}function tb(a,b){return Za(b,Gc.assert_stmt),2===Xa(b)?new ha(Zb(a,Ya(b,1)),null,b.lineno,b.col_offset):4===Xa(b)?new ha(Zb(a,Ya(b,1)),Zb(a,Ya(b,3)),b.lineno,b.col_offset):void bc.asserts.fail("improper number of parts to assert stmt")}function ub(a,b){var c,d,e,f;a:for(;;){switch(b.type){case Gc.import_as_name:return f=null,e=$a(Ya(b,0).value),3===Xa(b)&&(f=Ya(b,2).value),new Va(e,null==f?null:$a(f));case Gc.dotted_as_name:if(1===Xa(b)){b=Ya(b,0);continue a}return d=ub(a,Ya(b,0)),bc.asserts.assert(!d.asname),d.asname=$a(Ya(b,2).value),d;case Gc.dotted_name:if(1===Xa(b))return new Va($a(Ya(b,0).value),null);for(f="",c=0;c<Xa(b);c+=2)f+=Ya(b,c).value+".";return new Va($a(f.substr(0,f.length-1)),null);case Hc.T_STAR:return new Va($a("*"),null);default:throw new cc.builtin.SyntaxError("unexpected import name",a.c_filename,b.lineno)}break}}function vb(a,b){var c,d,e,f,g,h,i,j,k;if(Za(b,Gc.import_stmt),k=b.lineno,j=b.col_offset,b=Ya(b,0),b.type===Gc.import_name){for(b=Ya(b,1),Za(b,Gc.dotted_as_names),i=[],h=0;h<Xa(b);h+=2)i[h/2]=ub(a,Ya(b,h));return new ia(i,k,j)}if(b.type===Gc.import_from){for(g=null,f=0,d=1;d<Xa(b);++d){if(Ya(b,d).type===Gc.dotted_name){g=ub(a,Ya(b,d)),d++;break}if(Ya(b,d).type!==Hc.T_DOT)break;f++}switch(++d,Ya(b,d).type){case Hc.T_STAR:b=Ya(b,d),e=1;break;case Hc.T_LPAR:b=Ya(b,d+1),e=Xa(b);break;case Gc.import_as_names:if(b=Ya(b,d),e=Xa(b),e%2===0)throw new cc.builtin.SyntaxError("trailing comma not allowed without surrounding parentheses",a.c_filename,b.lineno);break;default:throw new cc.builtin.SyntaxError("Unexpected node-type in from-import",a.c_filename,b.lineno)}if(i=[],b.type===Hc.T_STAR)i[0]=ub(a,b);else for(h=0;h<Xa(b);h+=2)i[h/2]=ub(a,Ya(b,h));return c=g?g.name.v:"",new ja($a(c),i,f,k,j)}throw new cc.builtin.SyntaxError("unknown import statement",a.c_filename,b.lineno)}function wb(a,b){return bc.asserts.assert(b.type===Gc.testlist_comp||b.type===Gc.argument),Xa(b)>1&&Ya(b,1).type===Gc.comp_for?Lb(a,b):Qb(a,b)}function xb(a,b){function c(a,b){var c=0,d=Ya(b,1);a:for(;;){if(c++,Za(d,Gc.list_for),5!==Xa(d))return c;d=Ya(d,4);b:for(;;){if(Za(d,Gc.list_iter),d=Ya(d,0),d.type===Gc.list_for)continue a;if(d.type===Gc.list_if){if(3===Xa(d)){d=Ya(d,2);continue b}return c}break}break}}function d(a,b){for(var c=0;;){if(Za(b,Gc.list_iter),Ya(b,0).type===Gc.list_for)return c;if(b=Ya(b,0),Za(b,Gc.list_if),c++,2==Xa(b))return c;b=Ya(b,2)}}var e,f,g,h,i,j,l,m,n,o,p,q;for(Za(b,Gc.listmaker),bc.asserts.assert(Xa(b)>1),q=Zb(a,Ya(b,0)),p=c(a,b),o=[],n=Ya(b,1),m=0;p>m;++m){if(Za(n,Gc.list_for),l=Ya(n,1),j=qb(a,l,k),i=Qb(a,Ya(n,3)),h=1===Xa(l)?new Ra(j[0],i,[]):new Ra(new Ma(j,k,n.lineno,n.col_offset),i,[]),5===Xa(n)){for(n=Ya(n,4),g=d(a,n),f=[],e=0;g>e;++e)Za(n,Gc.list_iter),n=Ya(n,0),Za(n,Gc.list_if),f[e]=Zb(a,Ya(n,1)),3===Xa(n)&&(n=Ya(n,2));n.type===Gc.list_iter&&(n=Ya(n,0)),h.ifs=f}o[m]=h}return new ya(q,o,b.lineno,b.col_offset)}function yb(a,b){var c,d,e,f,g;if(Ya(b,0).type===Hc.T_MINUS&&2===Xa(b)&&(g=Ya(b,1),g.type===Gc.factor&&1===Xa(g)&&(f=Ya(g,0),f.type===Gc.power&&1===Xa(f)&&(e=Ya(f,0),e.type===Gc.atom&&(d=Ya(e,0),d.type===Hc.T_NUMBER)))))return d.value="-"+d.value,Xb(a,e);switch(c=Zb(a,Ya(b,1)),Ya(b,0).type){case Hc.T_PLUS:return new ta(F,c,b.lineno,b.col_offset);case Hc.T_MINUS:return new ta(G,c,b.lineno,b.col_offset);case Hc.T_TILDE:return new ta(D,c,b.lineno,b.col_offset)}bc.asserts.fail("unhandled factor")}function zb(a,b){var c,d,e,f=[];return Za(b,Gc.for_stmt),9===Xa(b)&&(f=fb(a,Ya(b,8))),e=Ya(b,1),d=qb(a,e,k),c=1===Xa(e)?d[0]:new Ma(d,k,b.lineno,b.col_offset),new aa(c,Qb(a,Ya(b,3)),fb(a,Ya(b,5)),f,b.lineno,b.col_offset)}function Ab(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;for(Za(b,Gc.arglist),p=0,o=0,n=0,m=0;m<Xa(b);m++)l=Ya(b,m),l.type===Gc.argument&&(1===Xa(l)?p++:Ya(l,1).type===Gc.comp_for?n++:o++);if(n>1||n&&(p||o))throw new cc.builtin.SyntaxError("Generator expression must be parenthesized if not sole argument",a.c_filename,b.lineno);if(p+o+n>255)throw new cc.builtin.SyntaxError("more than 255 arguments",a.c_filename,b.lineno);for(k=[],j=[],p=0,o=0,i=null,h=null,m=0;m<Xa(b);m++)if(l=Ya(b,m),l.type===Gc.argument)if(1===Xa(l)){if(o)throw new cc.builtin.SyntaxError("non-keyword arg after keyword arg",a.c_filename,b.lineno);if(i)throw new cc.builtin.SyntaxError("only named arguments may follow *expression",a.c_filename,b.lineno);k[p++]=Zb(a,Ya(l,0))}else if(Ya(l,1).type===Gc.comp_for)k[p++]=Lb(a,l);else{if(g=Zb(a,Ya(l,0)),g.constructor===ua)throw new cc.builtin.SyntaxError("lambda cannot contain assignment",a.c_filename,b.lineno);if(g.constructor!==Ka)throw new cc.builtin.SyntaxError("keyword can't be an expression",a.c_filename,b.lineno);for(f=g.id,ab(a,Ya(l,0),f,b.lineno),e=0;o>e;++e)if(d=j[e].arg,d===f)throw new cc.builtin.SyntaxError("keyword argument repeated",a.c_filename,b.lineno);j[o++]=new Ua(f,Zb(a,Ya(l,2)))}else l.type===Hc.T_STAR?i=Zb(a,Ya(b,++m)):l.type===Hc.T_DOUBLESTAR&&(h=Zb(a,Ya(b,++m)));return new Ea(c,k,j,i,h,c.lineno,c.col_offset)}function Bb(a,b,c){var d,e,f,g,h,i;if(Za(b,Gc.trailer),Ya(b,0).type===Hc.T_LPAR)return 2===Xa(b)?new Ea(c,[],[],null,null,b.lineno,b.col_offset):Ab(a,Ya(b,1),c);if(Ya(b,0).type===Hc.T_DOT)return new Ia(c,$a(Ya(b,1).value),j,b.lineno,b.col_offset);if(Za(Ya(b,0),Hc.T_LSQB),Za(Ya(b,2),Hc.T_RSQB),b=Ya(b,1),1===Xa(b))return new Ja(c,Wb(a,Ya(b,0)),j,b.lineno,b.col_offset);for(i=!0,h=[],g=0;g<Xa(b);g+=2)f=Wb(a,Ya(b,g)),f.constructor!==Qa&&(i=!1),h[g/2]=f;if(!i)return new Ja(c,new Pa(h),j,b.lineno,b.col_offset);for(e=[],g=0;g<h.length;++g)f=h[g],bc.asserts.assert(f.constructor===Qa&&null!==f.value&&void 0!==f.value),e[g]=f.value;return d=new Ma(e,j,b.lineno,b.col_offset),new Ja(c,new Qa(d),j,b.lineno,b.col_offset)}function Cb(a,b){var c;switch(Za(b,Gc.flow_stmt),c=Ya(b,0),c.type){case Gc.break_stmt:return new oa(b.lineno,b.col_offset);case Gc.continue_stmt:return new pa(b.lineno,b.col_offset);case Gc.yield_stmt:return new ma(Zb(a,Ya(c,0)),b.lineno,b.col_offset);case Gc.return_stmt:return 1===Xa(c)?new X(null,b.lineno,b.col_offset):new X(Qb(a,Ya(c,1)),b.lineno,b.col_offset);case Gc.raise_stmt:if(1===Xa(c))return new ea(null,null,null,b.lineno,b.col_offset);if(2===Xa(c))return new ea(Zb(a,Ya(c,1)),null,null,b.lineno,b.col_offset);if(4===Xa(c))return new ea(Zb(a,Ya(c,1)),Zb(a,Ya(c,3)),null,b.lineno,b.col_offset);if(6===Xa(c))return new ea(Zb(a,Ya(c,1)),Zb(a,Ya(c,3)),Zb(a,Ya(c,5)),b.lineno,b.col_offset);break;default:bc.asserts.fail("unexpected flow_stmt")}bc.asserts.fail("unhandled flow statement")}function Db(a,b){var c,d,e,f,g,h,i,j,k,l,m=null,n=null;if(b.type===Gc.parameters){if(2===Xa(b))return new Ta([],null,null,[]);b=Ya(b,1)}for(Za(b,Gc.varargslist),k=[],j=[],i=!1,h=0,g=0,f=0;h<Xa(b);)switch(l=Ya(b,h),l.type){case Gc.fpdef:for(e=0,c=0;;){if(h+1<Xa(b)&&Ya(b,h+1).type===Hc.T_EQUAL)j[g++]=Zb(a,Ya(b,h+2)),h+=2,i=!0;else if(i){if(c&&!e)throw new cc.builtin.SyntaxError("parenthesized arg with default",a.c_filename,b.lineno);throw new cc.builtin.SyntaxError("non-default argument follows default argument",a.c_filename,b.lineno)}{if(3!==Xa(l)){if(Ya(l,0).type===Hc.T_NAME&&(ab(a,b,Ya(l,0).value,b.lineno),d=$a(Ya(l,0).value),k[f++]=new Ka(d,o,l.lineno,l.col_offset)),h+=2,c)throw new cc.builtin.SyntaxError("parenthesized argument names are invalid",a.c_filename,b.lineno);break}if(l=Ya(l,1),1!==Xa(l))throw new cc.builtin.SyntaxError("tuple parameter unpacking has been removed",a.c_filename,b.lineno);c=!0,l=Ya(l,0),bc.asserts.assert(l.type===Gc.fpdef)}}break;case Hc.T_STAR:ab(a,Ya(b,h+1),Ya(b,h+1).value,b.lineno),m=$a(Ya(b,h+1).value),h+=3;break;case Hc.T_DOUBLESTAR:ab(a,Ya(b,h+1),Ya(b,h+1).value,b.lineno),n=$a(Ya(b,h+1).value),h+=3;break;default:bc.asserts.fail("unexpected node in varargslist")}return new Ta(k,m,n,j)}function Eb(a,b,c){var d,e,f;return Za(b,Gc.funcdef),f=$a(Ya(b,1).value),ab(a,Ya(b,1),Ya(b,1).value,b.lineno),e=Db(a,Ya(b,2)),d=fb(a,Ya(b,4)),new V(f,e,d,c,b.lineno,b.col_offset)}function Fb(a,b){return bc.asserts.assert(Xa(b)>0),Za(b,Gc.testlist),1===Xa(b)?[Zb(a,Ya(b,0))]:eb(a,b)}function Gb(a,b,c){var d,e,f;return Za(b,Gc.classdef),ab(a,b,Ya(b,1).value,b.lineno),f=$a(Ya(b,1).value),4===Xa(b)?new W(f,[],fb(a,Ya(b,3)),c,b.lineno,b.col_offset):Ya(b,3).type===Hc.T_RPAR?new W(f,[],fb(a,Ya(b,5)),c,b.lineno,b.col_offset):(e=Fb(a,Ya(b,3)),d=fb(a,Ya(b,6)),new W(f,e,d,c,b.lineno,b.col_offset))}function Hb(a,b){var c,d;return 3===Xa(b)?(c=new Ta([],null,null,[]),d=Zb(a,Ya(b,2))):(c=Db(a,Ya(b,1)),d=Zb(a,Ya(b,3))),new ua(c,d,b.lineno,b.col_offset)}function Ib(a,b){function c(a,b){var c=0;a:for(;;){if(c++,Za(b,Gc.comp_for),5!==Xa(b))return c;b=Ya(b,4);b:for(;;){if(Za(b,Gc.comp_iter),b=Ya(b,0),b.type===Gc.comp_for)continue a;if(b.type===Gc.comp_if){if(3===Xa(b)){b=Ya(b,2);continue b}return c}break}break}bc.asserts.fail("logic error in countCompFors")}function d(a,b){for(var c=0;;){if(Za(b,Gc.comp_iter),Ya(b,0).type===Gc.comp_for)return c;if(b=Ya(b,0),Za(b,Gc.comp_if),c++,2==Xa(b))return c;b=Ya(b,2)}}var e,f,g,h,i,j,l,m,n,o;for(m=c(a,b),n=[],l=0;m>l;++l){if(Za(b,Gc.comp_for),j=Ya(b,1),i=qb(a,j,k),h=Zb(a,Ya(b,3)),o=1===Xa(j)?new Ra(i[0],h,[]):new Ra(new Ma(i,k,b.lineno,b.col_offset),h,[]),5===Xa(b)){for(b=Ya(b,4),g=d(a,b),f=[],e=0;g>e;++e)Za(b,Gc.comp_iter),b=Ya(b,0),Za(b,Gc.comp_if),h=Zb(a,Ya(b,1)),f[e]=h,3===Xa(b)&&(b=Ya(b,2));b.type===Gc.comp_iter&&(b=Ya(b,0)),o.ifs=f}n[l]=o}return n}function Jb(a,b,c){var d,e;return bc.asserts.assert(Xa(b)>1),d=Zb(a,Ya(b,0)),e=Ib(a,Ya(b,1)),c===Ic?new Ba(d,e,b.lineno,b.col_offset):c===Jc?new za(d,e,b.lineno,b.col_offset):void 0}function Kb(a,b){var c,d,e=[];return bc.asserts.assert(Xa(b)>3),Za(Ya(b,1),Hc.T_COLON),c=Zb(a,Ya(b,0)),d=Zb(a,Ya(b,2)),e=Ib(a,Ya(b,3)),new Aa(c,d,e,b.lineno,b.col_offset)}function Lb(a,b){return bc.asserts.assert(b.type===Gc.testlist_comp||b.type===Gc.argument),Jb(a,b,Ic)}function Mb(a,b){return bc.asserts.assert(b.type===Gc.dictorsetmaker),Jb(a,b,Jc)}function Nb(a,b){return Za(b,Gc.while_stmt),4===Xa(b)?new ba(Zb(a,Ya(b,1)),fb(a,Ya(b,3)),[],b.lineno,b.col_offset):7===Xa(b)?new ba(Zb(a,Ya(b,1)),fb(a,Ya(b,3)),fb(a,Ya(b,6)),b.lineno,b.col_offset):void bc.asserts.fail("wrong number of tokens for 'while' stmt")}function Ob(a,b){switch(Za(b,Gc.augassign),b=Ya(b,0),b.value.charAt(0)){case"+":return r;case"-":return s;case"/":return"/"===b.value.charAt(1)?C:u;case"%":return v;case"<":return x;case">":return y;case"&":return B;case"^":return A;case"|":return z;case"*":return"*"===b.value.charAt(1)?w:t;default:bc.asserts.fail("invalid augassign")}}function Pb(a,b){var c,d,e,f,g=new sa(Zb(a,Ya(b,0)),cb(Ya(b,1)),Zb(a,Ya(b,2)),b.lineno,b.col_offset),h=(Xa(b)-1)/2;for(f=1;h>f;++f)e=Ya(b,2*f+1),d=cb(e),c=Zb(a,Ya(b,2*f+2)),g=new sa(g,d,c,e.lineno,e.col_offset);return g}function Qb(a,b){return bc.asserts.assert(Xa(b)>0),b.type===Gc.testlist_comp?Xa(b)>1&&bc.asserts.assert(Ya(b,1).type!==Gc.comp_for):bc.asserts.assert(b.type===Gc.testlist||b.type===Gc.testlist_safe||b.type===Gc.testlist1),1===Xa(b)?Zb(a,Ya(b,0)):new Ma(eb(a,b),j,b.lineno,b.col_offset)}function Rb(a,b){var c,d,e,f,g,h,i,j,l;if(Za(b,Gc.expr_stmt),1===Xa(b))return new ma(Qb(a,Ya(b,0)),b.lineno,b.col_offset);if(Ya(b,1).type===Gc.augassign){switch(l=Ya(b,0),j=Qb(a,l),j.constructor){case Ba:throw new cc.builtin.SyntaxError("augmented assignment to generator expression not possible",a.c_filename,b.lineno);case Ca:throw new cc.builtin.SyntaxError("augmented assignment to yield expression not possible",a.c_filename,b.lineno);case Ka:i=j.id,ab(a,l,i,b.lineno);break;case Ia:case Ja:break;default:throw new cc.builtin.SyntaxError("illegal expression for augmented assignment",a.c_filename,b.lineno)}return bb(a,j,k,l),l=Ya(b,2),h=l.type===Gc.testlist?Qb(a,l):Zb(a,l),new $(j,Ob(a,Ya(b,1)),h,b.lineno,b.col_offset)}for(Za(Ya(b,1),Hc.T_EQUAL),g=[],f=0;f<Xa(b)-2;f+=2){if(l=Ya(b,f),l.type===Gc.yield_expr)throw new cc.builtin.SyntaxError("assignment to yield expression not possible",a.c_filename,b.lineno);e=Qb(a,l),bb(a,e,k,Ya(b,f)),g[f/2]=e}return d=Ya(b,Xa(b)-1),c=d.type===Gc.testlist?Qb(a,d):Zb(a,d),new Z(g,c,b.lineno,b.col_offset)}function Sb(a,b){return bc.asserts.assert(5===Xa(b)),new va(Zb(a,Ya(b,2)),Zb(a,Ya(b,0)),Zb(a,Ya(b,4)),b.lineno,b.col_offset)}function Tb(a,b){var c=function(a){return unescape(encodeURIComponent(a))},d=function(a){return decodeURIComponent(escape(a))},e=function(a,b){var c,d,e,f,g,h,i=a.length,j="";for(h=0;i>h;++h)g=a.charAt(h),"\\"===g?(++h,g=a.charAt(h),"n"===g?j+="\n":"\\"===g?j+="\\":"t"===g?j+=" ":"r"===g?j+="\r":"b"===g?j+="\b":"f"===g?j+="\f":"v"===g?j+="":"0"===g?j+="\x00":'"'===g?j+='"':"'"===g?j+="'":"\n"===g||("x"===g?(f=a.charAt(++h),e=a.charAt(++h),j+=String.fromCharCode(parseInt(f+e,16))):"u"===g||"U"===g?(f=a.charAt(++h),e=a.charAt(++h),d=a.charAt(++h),c=a.charAt(++h),j+=String.fromCharCode(parseInt(f+e,16),parseInt(d+c,16))):j+="\\"+g)):j+=g;return j},f=b.charAt(0),h=!1,i=!1;return(a.c_flags&g.CO_FUTURE_UNICODE_LITERALS||cc.python3===!0)&&(i=!0),"u"===f||"U"===f?(b=b.substr(1),f=b.charAt(0),i=!0):("r"===f||"R"===f)&&(b=b.substr(1),f=b.charAt(0),h=!0),bc.asserts.assert("b"!==f&&"B"!==f,"todo; haven't done b'' strings yet"),bc.asserts.assert("'"===f||'"'===f&&b.charAt(b.length-1)===f),b=b.substr(1,b.length-2),i&&(b=c(b)),b.length>=4&&b.charAt(0)===f&&b.charAt(1)===f&&(bc.asserts.assert(b.charAt(b.length-1)===f&&b.charAt(b.length-2)===f),b=b.substr(2,b.length-4)),$a(h||-1===b.indexOf("\\")?d(b):e(b,f))}function Ub(a,b){var c,d;for(Za(Ya(b,0),Hc.T_STRING),d=new cc.builtin.str(""),c=0;c<Xa(b);++c)try{d=d.sq$concat(Tb(a,Ya(b,c).value))}catch(e){throw new cc.builtin.SyntaxError("invalid string (possibly contains a unicode character)",a.c_filename,Ya(b,c).lineno)}return d}function Vb(a,b,c){var d,e,f,g=b.charAt(b.length-1);if("j"===g||"J"===g)return cc.builtin.complex.complex_subtype_from_string(b);if("l"===g||"L"===g)return cc.longFromStr(b.substr(0,b.length-1),0);if(-1!==b.indexOf("."))return new cc.builtin.float_(parseFloat(b));if(f=b,d=!1,"-"===b.charAt(0)&&(f=b.substr(1),d=!0),"0"!==f.charAt(0)||"x"!==f.charAt(1)&&"X"!==f.charAt(1)){if(-1!==b.indexOf("e")||-1!==b.indexOf("E"))return new cc.builtin.float_(parseFloat(b));"0"!==f.charAt(0)||"b"!==f.charAt(1)&&"B"!==f.charAt(1)?"0"===f.charAt(0)?"0"===f?e=0:(f=f.substring(1),("o"===f.charAt(0)||"O"===f.charAt(0))&&(f=f.substring(1)),e=parseInt(f,8)):e=parseInt(f,10):(f=f.substring(2),e=parseInt(f,2))}else f=f.substring(2),e=parseInt(f,16);return e>cc.builtin.int_.threshold$&&Math.floor(e)===e&&-1===b.indexOf("e")&&-1===b.indexOf("E")?cc.longFromStr(b,0):d?new cc.builtin.int_(-e):new cc.builtin.int_(e)}function Wb(a,b){
var c,d,e,f,g;return Za(b,Gc.subscript),g=Ya(b,0),f=null,e=null,d=null,g.type===Hc.T_DOT?new Na:1===Xa(b)&&g.type===Gc.test?new Qa(Zb(a,g)):(g.type===Gc.test&&(f=Zb(a,g)),g.type===Hc.T_COLON?Xa(b)>1&&(c=Ya(b,1),c.type===Gc.test&&(e=Zb(a,c))):Xa(b)>2&&(c=Ya(b,2),c.type===Gc.test&&(e=Zb(a,c))),g=Ya(b,Xa(b)-1),g.type===Gc.sliceop&&(1===Xa(g)?(g=Ya(g,0),d=new Ka($a("None"),j,g.lineno,g.col_offset)):(g=Ya(g,1),g.type===Gc.test&&(d=Zb(a,g)))),new Oa(f,e,d))}function Xb(a,b){var c,d,e,f,g,h=Ya(b,0);switch(h.type){case Hc.T_NAME:return new Ka($a(h.value),j,b.lineno,b.col_offset);case Hc.T_STRING:return new Ha(Ub(a,b),b.lineno,b.col_offset);case Hc.T_NUMBER:return new Ga(Vb(a,h.value,b.lineno),b.lineno,b.col_offset);case Hc.T_LPAR:return h=Ya(b,1),h.type===Hc.T_RPAR?new Ma([],j,b.lineno,b.col_offset):h.type===Gc.yield_expr?Zb(a,h):wb(a,h);case Hc.T_LSQB:return h=Ya(b,1),h.type===Hc.T_RSQB?new La([],j,b.lineno,b.col_offset):(Za(h,Gc.listmaker),1===Xa(h)||Ya(h,1).type===Hc.T_COMMA?new La(eb(a,h),j,b.lineno,b.col_offset):xb(a,h));case Hc.T_LBRACE:if(e=[],d=[],h=Ya(b,1),b.type===Hc.T_RBRACE)return new wa([],null,b.lineno,b.col_offset);if(1===Xa(h)||0!==Xa(h)&&Ya(h,1).type===Hc.T_COMMA){for(g=[],f=Math.floor((Xa(h)+1)/2),c=0;c<Xa(h);c+=2){var i=Zb(a,Ya(h,c));g[c/2]=i}return new xa(g,b.lineno,b.col_offset)}if(0!==Xa(h)&&Ya(h,1).type==Gc.comp_for)return Mb(a,h);if(Xa(h)>3&&Ya(h,3).type===Gc.comp_for)return Kb(a,h);for(f=Math.floor((Xa(h)+1)/4),c=0;c<Xa(h);c+=4)e[c/4]=Zb(a,Ya(h,c)),d[c/4]=Zb(a,Ya(h,c+2));return new wa(e,d,b.lineno,b.col_offset);case Hc.T_BACKQUOTE:return new Fa(Qb(a,Ya(b,1)),b.lineno,b.col_offset);default:bc.asserts.fail("unhandled atom",h.type)}}function Yb(a,b){var c,d,e,f,g;if(Za(b,Gc.power),g=Xb(a,Ya(b,0)),1===Xa(b))return g;for(f=1;f<Xa(b)&&(e=Ya(b,f),e.type===Gc.trailer);++f)d=Bb(a,e,g),d.lineno=g.lineno,d.col_offset=g.col_offset,g=d;return Ya(b,Xa(b)-1).type===Gc.factor&&(c=Zb(a,Ya(b,Xa(b)-1)),g=new sa(g,w,c,b.lineno,b.col_offset)),g}function Zb(a,b){var c,d,e,f,g;a:for(;;){switch(b.type){case Gc.test:case Gc.old_test:if(Ya(b,0).type===Gc.lambdef||Ya(b,0).type===Gc.old_lambdef)return Hb(a,Ya(b,0));if(Xa(b)>1)return Sb(a,b);case Gc.or_test:case Gc.and_test:if(1===Xa(b)){b=Ya(b,0);continue a}for(g=[],f=0;f<Xa(b);f+=2)g[f/2]=Zb(a,Ya(b,f));return"and"===Ya(b,1).value?new ra(p,g,b.lineno,b.col_offset):(bc.asserts.assert("or"===Ya(b,1).value),new ra(q,g,b.lineno,b.col_offset));case Gc.not_test:if(1===Xa(b)){b=Ya(b,0);continue a}return new ta(E,Zb(a,Ya(b,1)),b.lineno,b.col_offset);case Gc.comparison:if(1===Xa(b)){b=Ya(b,0);continue a}for(e=[],d=[],f=1;f<Xa(b);f+=2)e[(f-1)/2]=db(a,Ya(b,f)),d[(f-1)/2]=Zb(a,Ya(b,f+1));return new Da(Zb(a,Ya(b,0)),e,d,b.lineno,b.col_offset);case Gc.expr:case Gc.xor_expr:case Gc.and_expr:case Gc.shift_expr:case Gc.arith_expr:case Gc.term:if(1===Xa(b)){b=Ya(b,0);continue a}return Pb(a,b);case Gc.yield_expr:return c=null,2===Xa(b)&&(c=Qb(a,Ya(b,1))),new Ca(c,b.lineno,b.col_offset);case Gc.factor:if(1===Xa(b)){b=Ya(b,0);continue a}return yb(a,b);case Gc.power:return Yb(a,b);default:bc.asserts.fail("unhandled expr","n.type: %d",b.type)}break}}function $b(a,b){var c,d,e,f,g=1,h=null;for(Za(b,Gc.print_stmt),Xa(b)>=2&&Ya(b,1).type===Hc.T_RIGHTSHIFT&&(h=Zb(a,Ya(b,2)),g=4),f=[],d=g,e=0;d<Xa(b);d+=2,++e)f[e]=Zb(a,Ya(b,d));return c=Ya(b,Xa(b)-1).type===Hc.T_COMMA?!1:!0,new _(h,f,c,b.lineno,b.col_offset)}function _b(a,b){var c;if(b.type===Gc.stmt&&(bc.asserts.assert(1===Xa(b)),b=Ya(b,0)),b.type===Gc.simple_stmt&&(bc.asserts.assert(1===_a(b)),b=Ya(b,0)),b.type===Gc.small_stmt)switch(Za(b,Gc.small_stmt),b=Ya(b,0),b.type){case Gc.expr_stmt:return Rb(a,b);case Gc.print_stmt:return $b(a,b);case Gc.del_stmt:return rb(a,b);case Gc.pass_stmt:return new na(b.lineno,b.col_offset);case Gc.flow_stmt:return Cb(a,b);case Gc.import_stmt:return vb(a,b);case Gc.global_stmt:return sb(a,b);case Gc.exec_stmt:return ob(a,b);case Gc.assert_stmt:return tb(a,b);case Gc.debugger_stmt:return new qa(b.lineno,b.col_offset);default:bc.asserts.fail("unhandled small_stmt")}else switch(c=Ya(b,0),Za(b,Gc.compound_stmt),c.type){case Gc.if_stmt:return pb(a,c);case Gc.while_stmt:return Nb(a,c);case Gc.for_stmt:return zb(a,c);case Gc.try_stmt:return hb(a,c);case Gc.with_stmt:return nb(a,c);case Gc.funcdef:return Eb(a,c,[]);case Gc.classdef:return Gb(a,c,[]);case Gc.decorated:return lb(a,c);default:bc.asserts.assert("unhandled compound_stmt")}}function ac(a,b,c){return b=b||2,function(d){var e=arguments[b-1],f=a.apply(void 0,arguments);return f.range=e.range,f.str=e.str,f.loc=e.loc,c&&(console.log(e),console.log(f)),f}}var bc={global:b};bc.exportSymbol=function(){},bc.require=function(){},bc.inherits=function(a,b){function c(){}if(!b)throw new Error("Cant inherit from undefined?");c.prototype=b.prototype,a.superClass_=b.prototype,a.prototype=new c,a.prototype.constructor=a},bc.asserts={assert:function(a,b){if(!a)throw new Error("AssertionFailed:"+b)}};var cc=cc||{};cc.builtin=cc.builtin||{},cc.builtin.bool=Boolean,cc.builtin.int_=function(a){this.v=a},cc.builtin.int_.prototype.threshold$=1/0,cc.builtin.int_.prototype.valueOf=function(){return this.v.valueOf()},cc.builtin.tuple=function(a){this.v=Array.prototype.slice.call(a,0)},cc.builtin.tuple.prototype.sq$length=function(){return this.length},cc.builtin.float_=Number,cc.builtin["long"]=Number,cc.builtin.func=function(a){return a},void 0===cc.builtin&&(cc.builtin={}),cc.dunderToSkulpt={__eq__:"ob$eq",__ne__:"ob$ne",__lt__:"ob$lt",__le__:"ob$le",__gt__:"ob$gt",__ge__:"ob$ge",__hash__:"tp$hash",__abs__:"nb$abs",__neg__:"nb$negative",__pos__:"nb$positive",__int__:"nb$int_",__long__:"nb$lng",__float__:"nb$float_",__add__:"nb$add",__radd__:"nb$reflected_add",__sub__:"nb$subtract",__rsub__:"nb$reflected_subtract",__mul__:"nb$multiply",__rmul__:"nb$reflected_multiply",__div__:"nb$divide",__rdiv__:"nb$reflected_divide",__floordiv__:"nb$floor_divide",__rfloordiv__:"nb$reflected_floor_divide",__mod__:"nb$remainder",__rmod__:"nb$reflected_remainder",__divmod__:"nb$divmod",__rdivmod__:"nb$reflected_divmod",__pow__:"nb$power",__rpow__:"nb$reflected_power",__contains__:"sq$contains",__len__:["sq$length",0]},cc.builtin.type=function(a,b,c){var d,e,f,g;if(void 0===b&&void 0===c)return e=a,e.ob$type;if("dict"!==c.tp$name)throw new cc.builtin.TypeError("type() argument 3 must be dict, not "+cc.abstr.typeName(c));if(!cc.builtin.checkString(a))throw new cc.builtin.TypeError("type() argument 1 must be str, not "+cc.abstr.typeName(a));if("tuple"!==b.tp$name)throw new cc.builtin.TypeError("type() argument 2 must be tuple, not "+cc.abstr.typeName(b));f=function(a,b,c,d,e){var g,h,i,j=this;return this instanceof f?(d=d||[],j.$d=new cc.builtin.dict([]),j.$d.mp$ass_subscript(new cc.builtin.str("__dict__"),j.$d),void 0!==f.prototype.tp$base&&(f.prototype.tp$base.sk$klass?f.prototype.tp$base.call(this,a,b,c,d.slice(),e):(i=d.slice(),i.unshift(f,this),cc.abstr.superConstructor.apply(void 0,i))),g=cc.builtin.type.typeLookup(j.ob$type,"__init__"),void 0!==g?(d.unshift(j),h=cc.misceval.applyOrSuspend(g,a,b,c,d),function k(a){return a instanceof cc.misceval.Suspension?e?new cc.misceval.Suspension(k,a):cc.misceval.retryOptionalSuspensionOrThrow(a):j}(h)):j):new f(a,b,c,d,e)};var h=cc.ffi.remapToJs(a),i=!1;0===b.v.length&&cc.python3&&(i=!0,cc.abstr.setUpInheritance(h,f,cc.builtin.object));var j,k,l,m=[];for(k=b.tp$iter(),j=k.tp$iternext();void 0!==j;j=k.tp$iternext())if(void 0===l&&(l=j),j.prototype instanceof cc.builtin.object||j===cc.builtin.object){for(;j.sk$klass&&j.prototype.tp$base;)j=j.prototype.tp$base;!j.sk$klass&&m.indexOf(j)<0&&m.push(j),i=!0}if(m.length>1)throw new cc.builtin.TypeError("Multiple inheritance with more than one builtin type is unsupported");void 0!==l&&(bc.inherits(f,l),(l.prototype instanceof cc.builtin.object||l===cc.builtin.object)&&(f.prototype.tp$base=l)),f.prototype.tp$name=h,f.prototype.ob$type=cc.builtin.type.makeIntoTypeObj(h,f),i||(f.prototype.tp$getattr=cc.builtin.object.prototype.GenericGetAttr,f.prototype.tp$setattr=cc.builtin.object.prototype.GenericSetAttr);var n=new cc.builtin.str("__module__");void 0===c.mp$lookup(n)&&c.mp$ass_subscript(n,cc.globals.__name__);var o;for(k=c.tp$iter(),o=k.tp$iternext();void 0!==o;o=k.tp$iternext())g=c.mp$subscript(o),void 0===g&&(g=null),f.prototype[o.v]=g,f[o.v]=g;f.__class__=f,f.__name__=a,f.sk$klass=!0,f.prototype.tp$descr_get=function(){bc.asserts.fail("in type tp$descr_get")},f.prototype.$r=function(){var a,b,d=this.tp$getattr("__repr__");return void 0!==d&&d.im_func!==cc.builtin.object.prototype.__repr__?cc.misceval.apply(d,void 0,void 0,void 0,[]):void 0!==f.prototype.tp$base&&f.prototype.tp$base!==cc.builtin.object&&void 0!==f.prototype.tp$base.prototype.$r?f.prototype.tp$base.prototype.$r.call(this):(b=c.mp$subscript(n),a="",b&&(a=b.v+"."),new cc.builtin.str("<"+a+h+" object>"))},f.prototype.tp$str=function(){var a=this.tp$getattr("__str__");return void 0!==a&&a.im_func!==cc.builtin.object.prototype.__str__?cc.misceval.apply(a,void 0,void 0,void 0,[]):void 0!==f.prototype.tp$base&&f.prototype.tp$base!==cc.builtin.object&&void 0!==f.prototype.tp$base.prototype.tp$str?f.prototype.tp$base.prototype.tp$str.call(this):this.$r()},f.prototype.tp$length=function(a){var b=cc.misceval.chain(cc.abstr.gattr(this,"__len__",a),function(a){return cc.misceval.applyOrSuspend(a,void 0,void 0,void 0,[])});return a?b:cc.misceval.retryOptionalSuspensionOrThrow(b)},f.prototype.tp$call=function(a,b){return cc.misceval.chain(cc.abstr.gattr(this,"__call__",!0),function(c){return cc.misceval.applyOrSuspend(c,void 0,void 0,b,a)})},f.prototype.tp$iter=function(){var a=cc.abstr.gattr(this,"__iter__",!1);return cc.misceval.callsim(a)},f.prototype.tp$iternext=function(a){var b=this,c=cc.misceval.chain(cc.misceval.tryCatch(function(){return cc.abstr.gattr(b,"next",a)},function(a){throw a instanceof cc.builtin.AttributeError?new cc.builtin.TypeError("'"+cc.abstr.typeName(b)+"' object is not iterable"):a}),function(a){return cc.misceval.tryCatch(function(){return cc.misceval.callsimOrSuspend(a)},function(a){if(a instanceof cc.builtin.StopIteration)return void 0;throw a})});return a?c:cc.misceval.retryOptionalSuspensionOrThrow(c)},f.prototype.tp$getitem=function(a,b){var c,d=cc.abstr.gattr(this,"__getitem__",b);if(void 0!==d)return c=cc.misceval.applyOrSuspend(d,void 0,void 0,void 0,[a]),b?c:cc.misceval.retryOptionalSuspensionOrThrow(c);throw new cc.builtin.TypeError("'"+cc.abstr.typeName(this)+"' object does not support indexing")},f.prototype.tp$setitem=function(a,b,c){var d,e=cc.abstr.gattr(this,"__setitem__",c);if(void 0!==e)return d=cc.misceval.applyOrSuspend(e,void 0,void 0,void 0,[a,b]),c?d:cc.misceval.retryOptionalSuspensionOrThrow(d);throw new cc.builtin.TypeError("'"+cc.abstr.typeName(this)+"' object does not support item assignment")},b&&(f.$d=new cc.builtin.dict([]),f.$d.mp$ass_subscript(cc.builtin.type.basesStr_,b),d=cc.builtin.type.buildMRO(f),f.$d.mp$ass_subscript(cc.builtin.type.mroStr_,d),f.tp$mro=d),f.tp$setattr=cc.builtin.type.prototype.tp$setattr;var p,q,r,s=function(a,b,c,d){f.prototype[a]=function(){var a,b=Array.prototype.slice.call(arguments);return b.unshift(c,this),d&&(a=b[d+1],b.splice(d+1,1),a)?cc.misceval.callsimOrSuspend.apply(void 0,b):cc.misceval.callsim.apply(void 0,b)}};for(p in cc.dunderToSkulpt)q=cc.dunderToSkulpt[p],"string"==typeof q?r=null:(r=q[1],q=q[0]),f[p]&&s(q,p,f[p],r);return f},cc.builtin.type.makeTypeObj=function(a,b){return cc.builtin.type.makeIntoTypeObj(a,b),b},cc.builtin.type.makeIntoTypeObj=function(a,b){return bc.asserts.assert(void 0!==a),bc.asserts.assert(void 0!==b),b.ob$type=cc.builtin.type,b.tp$name=a,b.$r=function(){var a,c=b.__module__,d="";return c&&(d=c.v+"."),a="class",c||b.sk$klass||cc.python3||(a="type"),new cc.builtin.str("<"+a+" '"+d+b.tp$name+"'>")},b.tp$str=void 0,b.tp$getattr=cc.builtin.type.prototype.tp$getattr,b.tp$setattr=cc.builtin.object.prototype.GenericSetAttr,b.tp$richcompare=cc.builtin.type.prototype.tp$richcompare,b.sk$type=!0,b},cc.builtin.type.ob$type=cc.builtin.type,cc.builtin.type.tp$name="type",cc.builtin.type.$r=function(){return cc.python3?new cc.builtin.str("<class 'type'>"):new cc.builtin.str("<type 'type'>")},cc.builtin.type.prototype.tp$getattr=function(a){var b,c,d,e=this;return this.$d&&(b=this.$d.mp$lookup(new cc.builtin.str(a)),void 0!==b)?b:(c=cc.builtin.type.typeLookup(e,a),void 0!==c&&null!==c&&void 0!==c.ob$type&&(d=c.ob$type.tp$descr_get),d?d.call(c,null,e):void 0!==c?c:void 0)},cc.builtin.type.prototype.tp$setattr=function(a,b){this[a]=b},cc.builtin.type.typeLookup=function(a,b){var c,d,e,f=a.tp$mro,g=new cc.builtin.str(b);if(!f)return a.prototype?a.prototype[b]:void 0;for(e=0;e<f.v.length;++e){if(c=f.v[e],c.hasOwnProperty(b))return c[b];if(d=c.$d.mp$lookup(g),void 0!==d)return d;if(c.prototype&&void 0!==c.prototype[b])return c.prototype[b]}return void 0},cc.builtin.type.mroMerge_=function(a){for(var b,c,d,e,f,g,h,i,j=[];;){for(c=0;c<a.length&&(b=a[c],0===b.length);++c);if(c===a.length)return j;for(i=[],c=0;c<a.length;++c)if(b=a[c],0!==b.length){h=b[0];a:for(g=0;g<a.length;++g)for(f=a[g],e=1;e<f.length;++e)if(f[e]===h)break a;g===a.length&&i.push(h)}if(0===i.length)throw new cc.builtin.TypeError("Inconsistent precedences in type hierarchy");for(d=i[0],j.push(d),c=0;c<a.length;++c)b=a[c],b.length>0&&b[0]===d&&b.splice(0,1)}},cc.builtin.type.buildMRO_=function(a){var b,c,d=[[a]],e=a.$d.mp$subscript(cc.builtin.type.basesStr_);for(b=0;b<e.v.length;++b)d.push(cc.builtin.type.buildMRO_(e.v[b]));for(c=[],b=0;b<e.v.length;++b)c.push(e.v[b]);return d.push(c),cc.builtin.type.mroMerge_(d)},cc.builtin.type.buildMRO=function(a){return new cc.builtin.tuple(cc.builtin.type.buildMRO_(a))},cc.builtin.type.prototype.tp$richcompare=function(a,b){var c,d;return a.ob$type!=cc.builtin.type?void 0:this.$r&&a.$r?(d=new cc.builtin.str(this.$r().v.slice(1,6)),c=new cc.builtin.str(a.$r().v.slice(1,6)),"class"!==this.$r().v.slice(1,6)&&(d=this.$r(),c=a.$r()),d.tp$richcompare(c,b)):void 0},cc.abstr={},cc.abstr.typeName=function(a){var b;return b=void 0!==a.tp$name?a.tp$name:"<invalid type>"},cc.abstr.binop_type_error=function(a,b,c){var d=cc.abstr.typeName(a),e=cc.abstr.typeName(b);throw new cc.builtin.TypeError("unsupported operand type(s) for "+c+": '"+d+"' and '"+e+"'")},cc.abstr.unop_type_error=function(a,b){var c=cc.abstr.typeName(a),d={UAdd:"+",USub:"-",Invert:"~"}[b];throw new cc.builtin.TypeError("bad operand type for unary "+d+": '"+c+"'")},cc.abstr.boNameToSlotFuncLhs_=function(a,b){if(null===a)return void 0;switch(b){case"Add":return a.nb$add?a.nb$add:a.__add__;case"Sub":return a.nb$subtract?a.nb$subtract:a.__sub__;case"Mult":return a.nb$multiply?a.nb$multiply:a.__mul__;case"Div":return a.nb$divide?a.nb$divide:a.__div__;case"FloorDiv":return a.nb$floor_divide?a.nb$floor_divide:a.__floordiv__;case"Mod":return a.nb$remainder?a.nb$remainder:a.__mod__;case"DivMod":return a.nb$divmod?a.nb$divmod:a.__divmod__;case"Pow":return a.nb$power?a.nb$power:a.__pow__;case"LShift":return a.nb$lshift?a.nb$lshift:a.__lshift__;case"RShift":return a.nb$rshift?a.nb$rshift:a.__rshift__;case"BitAnd":return a.nb$and?a.nb$and:a.__and__;case"BitXor":return a.nb$xor?a.nb$xor:a.__xor__;case"BitOr":return a.nb$or?a.nb$or:a.__or__}},cc.abstr.boNameToSlotFuncRhs_=function(a,b){if(null===a)return void 0;switch(b){case"Add":return a.nb$reflected_add?a.nb$reflected_add:a.__radd__;case"Sub":return a.nb$reflected_subtract?a.nb$reflected_subtract:a.__rsub__;case"Mult":return a.nb$reflected_multiply?a.nb$reflected_multiply:a.__rmul__;case"Div":return a.nb$reflected_divide?a.nb$reflected_divide:a.__rdiv__;case"FloorDiv":return a.nb$reflected_floor_divide?a.nb$reflected_floor_divide:a.__rfloordiv__;case"Mod":return a.nb$reflected_remainder?a.nb$reflected_remainder:a.__rmod__;case"DivMod":return a.nb$reflected_divmod?a.nb$reflected_divmod:a.__rdivmod__;case"Pow":return a.nb$reflected_power?a.nb$reflected_power:a.__rpow__;case"LShift":return a.nb$reflected_lshift?a.nb$reflected_lshift:a.__rlshift__;case"RShift":return a.nb$reflected_rshift?a.nb$reflected_rshift:a.__rrshift__;case"BitAnd":return a.nb$reflected_and?a.nb$reflected_and:a.__rand__;case"BitXor":return a.nb$reflected_xor?a.nb$reflected_xor:a.__rxor__;case"BitOr":return a.nb$reflected_or?a.nb$reflected_or:a.__ror__}},cc.abstr.iboNameToSlotFunc_=function(a,b){switch(b){case"Add":return a.nb$inplace_add?a.nb$inplace_add:a.__iadd__;case"Sub":return a.nb$inplace_subtract?a.nb$inplace_subtract:a.__isub__;case"Mult":return a.nb$inplace_multiply?a.nb$inplace_multiply:a.__imul__;case"Div":return a.nb$inplace_divide?a.nb$inplace_divide:a.__idiv__;case"FloorDiv":return a.nb$inplace_floor_divide?a.nb$inplace_floor_divide:a.__ifloordiv__;case"Mod":return a.nb$inplace_remainder;case"Pow":return a.nb$inplace_power;case"LShift":return a.nb$inplace_lshift?a.nb$inplace_lshift:a.__ilshift__;case"RShift":return a.nb$inplace_rshift?a.nb$inplace_rshift:a.__irshift__;case"BitAnd":return a.nb$inplace_and;case"BitOr":return a.nb$inplace_or;case"BitXor":return a.nb$inplace_xor?a.nb$inplace_xor:a.__ixor__}},cc.abstr.uoNameToSlotFunc_=function(a,b){if(null===a)return void 0;switch(b){case"USub":return a.nb$negative?a.nb$negative:a.__neg__;case"UAdd":return a.nb$positive?a.nb$positive:a.__pos__;case"Invert":return a.nb$invert?a.nb$invert:a.__invert__}},cc.abstr.binary_op_=function(a,b,c){var d,e,f,g=b.constructor.prototype instanceof a.constructor;return g&&(d=cc.abstr.boNameToSlotFuncRhs_(b,c),void 0!==d&&(e=d.call?d.call(b,a):cc.misceval.callsim(d,b,a),void 0!==e&&e!==cc.builtin.NotImplemented.NotImplemented$))?e:(f=cc.abstr.boNameToSlotFuncLhs_(a,c),void 0!==f&&(e=f.call?f.call(a,b):cc.misceval.callsim(f,a,b),void 0!==e&&e!==cc.builtin.NotImplemented.NotImplemented$)?e:g||(d=cc.abstr.boNameToSlotFuncRhs_(b,c),void 0===d||(e=d.call?d.call(b,a):cc.misceval.callsim(d,b,a),void 0===e||e===cc.builtin.NotImplemented.NotImplemented$))?void cc.abstr.binop_type_error(a,b,c):e)},cc.abstr.binary_iop_=function(a,b,c){var d,e,f=cc.abstr.iboNameToSlotFunc_(a,c);return void 0!==f&&(e=f.call?f.call(a,b):cc.misceval.callsim(f,a,b),void 0!==e&&e!==cc.builtin.NotImplemented.NotImplemented$)?e:(d=cc.abstr.iboNameToSlotFunc_(b,c),void 0!==d&&(e=d.call?d.call(b,a):cc.misceval.callsim(d,b,a),void 0!==e&&e!==cc.builtin.NotImplemented.NotImplemented$)?e:void cc.abstr.binop_type_error(a,b,c))},cc.abstr.unary_op_=function(a,b){var c,d=cc.abstr.uoNameToSlotFunc_(a,b);return void 0!==d&&(c=d.call?d.call(a):cc.misceval.callsim(d,a),void 0!==c)?c:void cc.abstr.unop_type_error(a,b)},cc.abstr.numOpAndPromote=function(a,b,c){var d,e;if(null===a||null===b)return void 0;if("number"==typeof a&&"number"==typeof b)return e=c(a,b),(e>cc.builtin.int_.threshold$||e<-cc.builtin.int_.threshold$)&&Math.floor(e)===e?[cc.builtin.lng.fromInt$(a),cc.builtin.lng.fromInt$(b)]:e;if(void 0===a||void 0===b)throw new cc.builtin.NameError("Undefined variable in expression");return a.constructor===cc.builtin.lng?[a,b]:a.constructor!==cc.builtin.int_&&a.constructor!==cc.builtin.float_||b.constructor!==cc.builtin.complex?a.constructor===cc.builtin.int_||a.constructor===cc.builtin.float_?[a,b]:"number"==typeof a?(d=cc.builtin.assk$(a),[d,b]):void 0:(d=new cc.builtin.complex(a),[d,b])},cc.abstr.boNumPromote_={Add:function(a,b){return a+b},Sub:function(a,b){return a-b},Mult:function(a,b){return a*b},Mod:function(a,b){var c;if(0===b)throw new cc.builtin.ZeroDivisionError("division or modulo by zero");return c=a%b,0>c*b?c+b:c},Div:function(a,b){if(0===b)throw new cc.builtin.ZeroDivisionError("division or modulo by zero");return a/b},FloorDiv:function(a,b){if(0===b)throw new cc.builtin.ZeroDivisionError("division or modulo by zero");return Math.floor(a/b)},Pow:Math.pow,BitAnd:function(a,b){var c=a&b;return 0>c&&(c+=4294967296),c},BitOr:function(a,b){var c=a|b;return 0>c&&(c+=4294967296),c},BitXor:function(a,b){var c=a^b;return 0>c&&(c+=4294967296),c},LShift:function(a,b){var c;if(0>b)throw new cc.builtin.ValueError("negative shift count");return c=a<<b,c>a?c:a*Math.pow(2,b)},RShift:function(a,b){var c;if(0>b)throw new cc.builtin.ValueError("negative shift count");return c=a>>b,a>0&&0>c&&(c&=Math.pow(2,32-b)-1),c}},cc.abstr.numberBinOp=function(a,b,c){var d,e=cc.abstr.boNumPromote_[c];if(void 0!==e){if(d=cc.abstr.numOpAndPromote(a,b,e),"number"==typeof d)return d;if(void 0!==d&&d.constructor===cc.builtin.int_)return d;if(void 0!==d&&d.constructor===cc.builtin.float_)return d;if(void 0!==d&&d.constructor===cc.builtin.lng)return d;void 0!==d&&(a=d[0],b=d[1])}return cc.abstr.binary_op_(a,b,c)},bc.exportSymbol("Sk.abstr.numberBinOp",cc.abstr.numberBinOp),cc.abstr.numberInplaceBinOp=function(a,b,c){var d,e=cc.abstr.boNumPromote_[c];if(void 0!==e){if(d=cc.abstr.numOpAndPromote(a,b,e),"number"==typeof d)return d;if(void 0!==d&&d.constructor===cc.builtin.int_)return d;if(void 0!==d&&d.constructor===cc.builtin.float_)return d;if(void 0!==d&&d.constructor===cc.builtin.lng)return d;void 0!==d&&(a=d[0],b=d[1])}return cc.abstr.binary_iop_(a,b,c)},bc.exportSymbol("Sk.abstr.numberInplaceBinOp",cc.abstr.numberInplaceBinOp),cc.abstr.numberUnaryOp=function(a,b){var c;if("Not"===b)return cc.misceval.isTrue(a)?cc.builtin.bool.false$:cc.builtin.bool.true$;if(a instanceof cc.builtin.bool){if(c=cc.builtin.asnum$(a),"USub"===b)return new cc.builtin.int_(-c);if("UAdd"===b)return new cc.builtin.int_(c);if("Invert"===b)return new cc.builtin.int_(~c)}else{if("USub"===b&&a.nb$negative)return a.nb$negative();if("UAdd"===b&&a.nb$positive)return a.nb$positive();if("Invert"===b&&a.nb$invert)return a.nb$invert()}return cc.abstr.unary_op_(a,b)},bc.exportSymbol("Sk.abstr.numberUnaryOp",cc.abstr.numberUnaryOp),cc.abstr.fixSeqIndex_=function(a,b){return b=cc.builtin.asnum$(b),0>b&&a.sq$length&&(b+=a.sq$length()),b},cc.abstr.sequenceContains=function(a,b,c){var d,e,f;if(a.sq$contains)return a.sq$contains(b);if(e=cc.abstr.lookupSpecial(a,"__contains__"),null!=e)return cc.misceval.isTrue(cc.misceval.callsim(e,a,b));if(!cc.builtin.checkIterable(a))throw d=cc.abstr.typeName(a),new cc.builtin.TypeError("argument of type '"+d+"' is not iterable");return f=cc.misceval.iterFor(cc.abstr.iter(a),function(a){return cc.misceval.richCompareBool(a,b,"Eq")?new cc.misceval.Break(!0):!1},!1),c?f:cc.misceval.retryOptionalSuspensionOrThrow(f)},cc.abstr.sequenceConcat=function(a,b){var c;if(a.sq$concat)return a.sq$concat(b);throw c=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+c+"' object can't be concatenated")},cc.abstr.sequenceGetIndexOf=function(a,b){var c,d,e,f;if(a.index)return cc.misceval.callsim(a.index,a,b);if(cc.builtin.checkIterable(a)){for(f=0,e=cc.abstr.iter(a),d=e.tp$iternext();void 0!==d;d=e.tp$iternext()){if(cc.misceval.richCompareBool(b,d,"Eq"))return new cc.builtin.int_(f);f+=1}throw new cc.builtin.ValueError("sequence.index(x): x not in sequence")}throw c=cc.abstr.typeName(a),new cc.builtin.TypeError("argument of type '"+c+"' is not iterable")},cc.abstr.sequenceGetCountOf=function(a,b){var c,d,e,f;if(a.count)return cc.misceval.callsim(a.count,a,b);if(cc.builtin.checkIterable(a)){for(f=0,e=cc.abstr.iter(a),d=e.tp$iternext();void 0!==d;d=e.tp$iternext())cc.misceval.richCompareBool(b,d,"Eq")&&(f+=1);return new cc.builtin.int_(f)}throw c=cc.abstr.typeName(a),new cc.builtin.TypeError("argument of type '"+c+"' is not iterable")},cc.abstr.sequenceGetItem=function(a,b,c){var d;if(a.mp$subscript)return a.mp$subscript(b);throw d=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+d+"' object is unsubscriptable")},cc.abstr.sequenceSetItem=function(a,b,c,d){var e;if(a.mp$ass_subscript)return a.mp$ass_subscript(b,c);throw e=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+e+"' object does not support item assignment")},cc.abstr.sequenceDelItem=function(a,b){var c;if(a.sq$del_item)return b=cc.abstr.fixSeqIndex_(a,b),void a.sq$del_item(b);throw c=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+c+"' object does not support item deletion")},cc.abstr.sequenceRepeat=function(a,b,c){var d,e;if(c=cc.builtin.asnum$(c),e=cc.misceval.asIndex(c),void 0===e)throw d=cc.abstr.typeName(c),new cc.builtin.TypeError("can't multiply sequence by non-int of type '"+d+"'");return a.call(b,c)},cc.abstr.sequenceGetSlice=function(a,b,c){var d;if(a.sq$slice)return b=cc.abstr.fixSeqIndex_(a,b),c=cc.abstr.fixSeqIndex_(a,c),a.sq$slice(b,c);if(a.mp$subscript)return a.mp$subscript(new cc.builtin.slice(b,c));throw d=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+d+"' object is unsliceable")},cc.abstr.sequenceDelSlice=function(a,b,c){var d;if(a.sq$del_slice)return b=cc.abstr.fixSeqIndex_(a,b),c=cc.abstr.fixSeqIndex_(a,c),void a.sq$del_slice(b,c);throw d=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+d+"' doesn't support slice deletion")},cc.abstr.sequenceSetSlice=function(a,b,c,d){var e;if(a.sq$ass_slice)b=cc.abstr.fixSeqIndex_(a,b),c=cc.abstr.fixSeqIndex_(a,c),a.sq$ass_slice(b,c,d);else{if(!a.mp$ass_subscript)throw e=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+e+"' object doesn't support slice assignment");a.mp$ass_subscript(new cc.builtin.slice(b,c),d)}},cc.abstr.sequenceUnpack=function(a,b){var c,d,e=[];if(!cc.builtin.checkIterable(a))throw new cc.builtin.TypeError("'"+cc.abstr.typeName(a)+"' object is not iterable");for(c=cc.abstr.iter(a),d=c.tp$iternext();void 0!==d&&e.length<b;d=c.tp$iternext())e.push(d);if(e.length<b)throw new cc.builtin.ValueError("need more than "+e.length+" values to unpack");if(void 0!==d)throw new cc.builtin.ValueError("too many values to unpack");return e},cc.abstr.objectFormat=function(a,b){var c,d;if(null==b&&(b=""),c=cc.abstr.lookupSpecial(a,"__format__"),null==c)throw new cc.builtin.TypeError("Type "+cc.abstr.typeName(a)+"doesn't define __format__");if(d=cc.misceval.callsim(c,a,b),!cc.builtin.checkString(d))throw new cc.builtin.TypeError("__format__ must return a str, not "+cc.abstr.typeName(d));return d},cc.abstr.objectAdd=function(a,b){var c,d;if(a.nb$add)return a.nb$add(b);throw d=cc.abstr.typeName(a),c=cc.abstr.typeName(b),new cc.builtin.TypeError("unsupported operand type(s) for +: '"+d+"' and '"+c+"'")},cc.abstr.objectNegative=function(a){var b,c=cc.builtin.asnum$(a);if(a instanceof cc.builtin.bool&&(a=new cc.builtin.int_(c)),a.nb$negative)return a.nb$negative();throw b=cc.abstr.typeName(a),new cc.builtin.TypeError("bad operand type for unary -: '"+b+"'")},cc.abstr.objectPositive=function(a){var b=cc.abstr.typeName(a),c=cc.builtin.asnum$(a);if(a instanceof cc.builtin.bool&&(a=new cc.builtin.int_(c)),a.nb$negative)return a.nb$positive();throw new cc.builtin.TypeError("bad operand type for unary +: '"+b+"'")},cc.abstr.objectDelItem=function(a,b){var c,d,e;if(null!==a){if(a.mp$del_subscript)return void a.mp$del_subscript(b);if(a.sq$ass_item){if(e=cc.misceval.asIndex(b),void 0===e)throw d=cc.abstr.typeName(b),new cc.builtin.TypeError("sequence index must be integer, not '"+d+"'");return void cc.abstr.sequenceDelItem(a,e)}}throw c=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+c+"' object does not support item deletion")},bc.exportSymbol("Sk.abstr.objectDelItem",cc.abstr.objectDelItem),cc.abstr.objectGetItem=function(a,b,c){var d;if(null!==a){if(a.tp$getitem)return a.tp$getitem(b,c);if(a.mp$subscript)return a.mp$subscript(b,c);if(cc.misceval.isIndex(b)&&a.sq$item)return cc.abstr.sequenceGetItem(a,cc.misceval.asIndex(b),c)}throw d=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+d+"' does not support indexing")},bc.exportSymbol("Sk.abstr.objectGetItem",cc.abstr.objectGetItem),cc.abstr.objectSetItem=function(a,b,c,d){var e;if(null!==a){if(a.tp$setitem)return a.tp$setitem(b,c,d);if(a.mp$ass_subscript)return a.mp$ass_subscript(b,c,d);if(cc.misceval.isIndex(b)&&a.sq$ass_item)return cc.abstr.sequenceSetItem(a,cc.misceval.asIndex(b),c,d)}throw e=cc.abstr.typeName(a),new cc.builtin.TypeError("'"+e+"' does not support item assignment")},bc.exportSymbol("Sk.abstr.objectSetItem",cc.abstr.objectSetItem),cc.abstr.gattr=function(a,b,c){var d,e,f=cc.abstr.typeName(a);if(null===a)throw new cc.builtin.AttributeError("'"+f+"' object has no attribute '"+b+"'");return void 0!==a.tp$getattr&&(e=a.tp$getattr("__getattribute__")),void 0!==e&&(d=cc.misceval.callsimOrSuspend(e,new cc.builtin.str(b))),d=cc.misceval.chain(d,function(c){var d;return void 0===c&&void 0!==a.tp$getattr&&(c=a.tp$getattr(b),void 0===c&&(d=a.tp$getattr("__getattr__"),void 0!==d&&(c=cc.misceval.callsimOrSuspend(d,new cc.builtin.str(b))))),c},function(a){if(void 0===a)throw new cc.builtin.AttributeError("'"+f+"' object has no attribute '"+b+"'");return a}),c?d:cc.misceval.retryOptionalSuspensionOrThrow(d)},bc.exportSymbol("Sk.abstr.gattr",cc.abstr.gattr),cc.abstr.sattr=function(a,b,c,d){var e,f,g=cc.abstr.typeName(a);if(null===a)throw new cc.builtin.AttributeError("'"+g+"' object has no attribute '"+b+"'");if(void 0!==a.tp$getattr&&(f=a.tp$getattr("__setattr__"),void 0!==f))return e=cc.misceval.callsimOrSuspend(f,new cc.builtin.str(b),c),d?e:cc.misceval.retryOptionalSuspensionOrThrow(e);if(void 0===a.tp$setattr)throw new cc.builtin.AttributeError("'"+g+"' object has no attribute '"+b+"'");a.tp$setattr(b,c)},bc.exportSymbol("Sk.abstr.sattr",cc.abstr.sattr),cc.abstr.iternext=function(a,b){return a.tp$iternext(b)},bc.exportSymbol("Sk.abstr.iternext",cc.abstr.iternext),cc.abstr.iter=function(a){var b,c,d,e=function(a){this.idx=0,this.myobj=a,this.getitem=cc.abstr.lookupSpecial(a,"__getitem__"),this.tp$iternext=function(){var a;try{a=cc.misceval.callsim(this.getitem,this.myobj,cc.ffi.remapToPy(this.idx))}catch(b){if(b instanceof cc.builtin.IndexError||b instanceof cc.builtin.StopIteration)return void 0;throw b}return this.idx++,a}};if(a.tp$getattr&&(b=cc.abstr.lookupSpecial(a,"__iter__"),b&&(d=cc.misceval.callsim(b,a),d.tp$iternext)))return d;if(a.tp$iter)try{if(d=a.tp$iter(),d.tp$iternext)return d}catch(f){}if(c=cc.abstr.lookupSpecial(a,"__getitem__"))return new e(a);throw new cc.builtin.TypeError("'"+cc.abstr.typeName(a)+"' object is not iterable")},bc.exportSymbol("Sk.abstr.iter",cc.abstr.iter),cc.abstr.lookupSpecial=function(a,b){var c;return a.ob$type?(c=a.ob$type,cc.builtin.type.typeLookup(c,b)):null},bc.exportSymbol("Sk.abstr.lookupSpecial",cc.abstr.lookupSpecial),cc.abstr.markUnhashable=function(a){var b=a.prototype;b.__hash__=cc.builtin.none.none$,b.tp$hash=cc.builtin.none.none$},cc.abstr.setUpInheritance=function(a,b,c){bc.inherits(b,c),b.prototype.tp$base=c,b.prototype.tp$name=a,b.prototype.ob$type=cc.builtin.type.makeIntoTypeObj(a,b)},cc.abstr.superConstructor=function(a,b,c){var d=Array.prototype.slice.call(arguments,2);a.prototype.tp$base.apply(b,d)},cc.builtin.object=function(){return this instanceof cc.builtin.object?this:new cc.builtin.object};var dc=function(a,b){try{return a.mp$subscript(b)}catch(c){return void 0}};cc.builtin.object.prototype.GenericGetAttr=function(a){var b,c,d,e,f,g=new cc.builtin.str(a);if(bc.asserts.assert("string"==typeof a),e=this.ob$type,bc.asserts.assert(void 0!==e,"object has no ob$type!"),f=this.$d||this.constructor.$d,f&&(f.mp$lookup?b=f.mp$lookup(g):f.mp$subscript?b=dc(f,g):"object"==typeof f&&(b=f[a]),void 0!==b))return b;if(d=cc.builtin.type.typeLookup(e,a),void 0!==d&&null!==d&&void 0!==d.ob$type){if(c=d.ob$type.tp$descr_get,!c&&d.__get__)return c=d.__get__,cc.misceval.callsimOrSuspend(c,d,this,cc.builtin.none.none$);if(c)return c.call(d,this,this.ob$type)}return void 0!==d?d:void 0},bc.exportSymbol("Sk.builtin.object.prototype.GenericGetAttr",cc.builtin.object.prototype.GenericGetAttr),cc.builtin.object.prototype.GenericPythonGetAttr=function(a,b){return cc.builtin.object.prototype.GenericGetAttr.call(a,b.v)},bc.exportSymbol("Sk.builtin.object.prototype.GenericPythonGetAttr",cc.builtin.object.prototype.GenericPythonGetAttr),cc.builtin.object.prototype.GenericSetAttr=function(a,b){var c,d,e,f,g=cc.abstr.typeName(this),h=this.ob$type;if(bc.asserts.assert("string"==typeof a),bc.asserts.assert(void 0!==h,"object has no ob$type!"),d=this.$d||this.constructor.$d,e=cc.builtin.type.typeLookup(h,a),void 0!==e&&null!==e&&void 0!==e.ob$type&&e.__set__)return f=e.__set__,void cc.misceval.callsimOrSuspend(f,e,this,b);
if(d.mp$ass_subscript){if(c=new cc.builtin.str(a),this instanceof cc.builtin.object&&!this.ob$type.sk$klass&&void 0===d.mp$lookup(c))throw new cc.builtin.AttributeError("'"+g+"' object has no attribute '"+a+"'");d.mp$ass_subscript(new cc.builtin.str(a),b)}else"object"==typeof d&&(d[a]=b)},bc.exportSymbol("Sk.builtin.object.prototype.GenericSetAttr",cc.builtin.object.prototype.GenericSetAttr),cc.builtin.object.prototype.GenericPythonSetAttr=function(a,b,c){return cc.builtin.object.prototype.GenericSetAttr.call(a,b.v,c)},bc.exportSymbol("Sk.builtin.object.prototype.GenericPythonSetAttr",cc.builtin.object.prototype.GenericPythonSetAttr),cc.builtin.object.prototype.HashNotImplemented=function(){throw new cc.builtin.TypeError("unhashable type: '"+cc.abstr.typeName(this)+"'")},cc.builtin.object.prototype.tp$getattr=cc.builtin.object.prototype.GenericGetAttr,cc.builtin.object.prototype.tp$setattr=cc.builtin.object.prototype.GenericSetAttr,cc.builtin.object.prototype.__getattr__=cc.builtin.object.prototype.GenericPythonGetAttr,cc.builtin.object.prototype.__setattr__=cc.builtin.object.prototype.GenericPythonSetAttr,cc.builtin.object.prototype.tp$name="object",cc.builtin.object.prototype.ob$type=cc.builtin.type.makeIntoTypeObj("object",cc.builtin.object),cc.builtin.object.prototype.ob$type.sk$klass=void 0,cc.builtin.object.prototype.__repr__=function(a){return cc.builtin.pyCheckArgs("__repr__",arguments,0,0,!1,!0),a.$r()},cc.builtin.object.prototype.__str__=function(a){return cc.builtin.pyCheckArgs("__str__",arguments,0,0,!1,!0),a.$r()},cc.builtin.object.prototype.__hash__=function(a){return cc.builtin.pyCheckArgs("__hash__",arguments,0,0,!1,!0),a.tp$hash()},cc.builtin.object.prototype.__eq__=function(a,b){return cc.builtin.pyCheckArgs("__eq__",arguments,1,1,!1,!0),a.ob$eq(b)},cc.builtin.object.prototype.__ne__=function(a,b){return cc.builtin.pyCheckArgs("__ne__",arguments,1,1,!1,!0),a.ob$ne(b)},cc.builtin.object.prototype.__lt__=function(a,b){return cc.builtin.pyCheckArgs("__lt__",arguments,1,1,!1,!0),a.ob$lt(b)},cc.builtin.object.prototype.__le__=function(a,b){return cc.builtin.pyCheckArgs("__le__",arguments,1,1,!1,!0),a.ob$le(b)},cc.builtin.object.prototype.__gt__=function(a,b){return cc.builtin.pyCheckArgs("__gt__",arguments,1,1,!1,!0),a.ob$gt(b)},cc.builtin.object.prototype.__ge__=function(a,b){return cc.builtin.pyCheckArgs("__ge__",arguments,1,1,!1,!0),a.ob$ge(b)},cc.builtin.object.prototype.$r=function(){return new cc.builtin.str("<object>")},cc.builtin.hashCount=1,cc.builtin.idCount=1,cc.builtin.object.prototype.tp$hash=function(){return this.$savedHash_||(this.$savedHash_=new cc.builtin.int_(cc.builtin.hashCount++)),this.$savedHash_},cc.builtin.object.prototype.ob$eq=function(a){return this===a?cc.builtin.bool.true$:cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.prototype.ob$ne=function(a){return this===a?cc.builtin.bool.false$:cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.prototype.ob$lt=function(a){return cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.prototype.ob$le=function(a){return cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.prototype.ob$gt=function(a){return cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.prototype.ob$ge=function(a){return cc.builtin.NotImplemented.NotImplemented$},cc.builtin.object.pythonFunctions=["__repr__","__str__","__hash__","__eq__","__ne__","__lt__","__le__","__gt__","__ge__","__getattr__","__setattr__"],cc.builtin.none=function(){this.v=null},cc.abstr.setUpInheritance("NoneType",cc.builtin.none,cc.builtin.object),cc.builtin.none.prototype.$r=function(){return new cc.builtin.str("None")},cc.builtin.none.prototype.tp$hash=function(){return new cc.builtin.int_(0)},cc.builtin.none.none$=new cc.builtin.none,cc.builtin.NotImplemented=function(){},cc.abstr.setUpInheritance("NotImplementedType",cc.builtin.NotImplemented,cc.builtin.object),cc.builtin.NotImplemented.prototype.$r=function(){return new cc.builtin.str("NotImplemented")},cc.builtin.NotImplemented.NotImplemented$=new cc.builtin.NotImplemented,bc.exportSymbol("Sk.builtin.none",cc.builtin.none),bc.exportSymbol("Sk.builtin.NotImplemented",cc.builtin.NotImplemented),cc.builtin.pyCheckArgs=function(a,b,c,d,e,f){var g=b.length,h="";if(void 0===d&&(d=1/0),e&&(g-=1),f&&(g-=1),c>g||g>d)throw h=c===d?a+"() takes exactly "+c+" arguments":c>g?a+"() takes at least "+c+" arguments":a+"() takes at most "+d+" arguments",h+=" ("+g+" given)",new cc.builtin.TypeError(h)},bc.exportSymbol("Sk.builtin.pyCheckArgs",cc.builtin.pyCheckArgs),cc.builtin.pyCheckType=function(a,b,c){if(!c)throw new cc.builtin.TypeError(a+" must be a "+b)},bc.exportSymbol("Sk.builtin.pyCheckType",cc.builtin.pyCheckType),cc.builtin.checkSequence=function(a){return null!==a&&void 0!==a.mp$subscript},bc.exportSymbol("Sk.builtin.checkSequence",cc.builtin.checkSequence),cc.builtin.checkIterable=function(a){var b=!1;if(null!==a)try{return b=cc.abstr.iter(a),b?!0:!1}catch(c){if(c instanceof cc.builtin.TypeError)return!1;throw c}return b},bc.exportSymbol("Sk.builtin.checkIterable",cc.builtin.checkIterable),cc.builtin.checkCallable=function(a){return"function"==typeof a?!0:a instanceof cc.builtin.func?!0:a instanceof cc.builtin.method?!0:void 0!==cc.abstr.lookupSpecial(a,"__call__")?!0:!1},cc.builtin.checkNumber=function(a){return null!==a&&("number"==typeof a||a instanceof cc.builtin.int_||a instanceof cc.builtin.float_||a instanceof cc.builtin.lng)},bc.exportSymbol("Sk.builtin.checkNumber",cc.builtin.checkNumber),cc.builtin.checkComplex=function(a){return cc.builtin.complex._complex_check(a)},bc.exportSymbol("Sk.builtin.checkComplex",cc.builtin.checkComplex),cc.builtin.checkInt=function(a){return null!==a&&("number"==typeof a&&a===(0|a)||a instanceof cc.builtin.int_||a instanceof cc.builtin.lng)},bc.exportSymbol("Sk.builtin.checkInt",cc.builtin.checkInt),cc.builtin.checkFloat=function(a){return null!==a&&a instanceof cc.builtin.float_},bc.exportSymbol("Sk.builtin.checkFloat",cc.builtin.checkFloat),cc.builtin.checkString=function(a){return null!==a&&a.__class__==cc.builtin.str},bc.exportSymbol("Sk.builtin.checkString",cc.builtin.checkString),cc.builtin.checkClass=function(a){return null!==a&&a.sk$type},bc.exportSymbol("Sk.builtin.checkClass",cc.builtin.checkClass),cc.builtin.checkBool=function(a){return a instanceof cc.builtin.bool},bc.exportSymbol("Sk.builtin.checkBool",cc.builtin.checkBool),cc.builtin.checkNone=function(a){return a instanceof cc.builtin.none},bc.exportSymbol("Sk.builtin.checkNone",cc.builtin.checkNone),cc.builtin.checkFunction=function(a){return null!==a&&void 0!==a.tp$call},bc.exportSymbol("Sk.builtin.checkFunction",cc.builtin.checkFunction),cc.builtin.func=function(a,b,c,d){var e;if(this.func_code=a,this.func_globals=b||null,void 0!==d)for(e in d)c[e]=d[e];return this.func_closure=c,this},bc.exportSymbol("Sk.builtin.func",cc.builtin.func),cc.builtin.func.prototype.tp$name="function",cc.builtin.func.prototype.tp$descr_get=function(a,b){return bc.asserts.assert(void 0!==a&&void 0!==b),null==a?this:new cc.builtin.method(this,a,b)},cc.builtin.func.prototype.tp$call=function(a,b){var c,d,e,f,g,h,i,j,k;if(this.func_closure){if(this.func_code.$defaults&&this.func_code.co_varnames)for(k=a.length,e=this.func_code.co_varnames.length,d=k;e>d;d++)a.push(void 0);a.push(this.func_closure)}if(i=this.func_code.co_kwargs,h=[],this.func_code.no_kw&&b)throw j=this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||"<native JS>",new cc.builtin.TypeError(j+"() takes no keyword arguments");if(b)for(g=b.length,f=this.func_code.co_varnames,e=f&&f.length,d=0;g>d;d+=2){for(c=0;e>c&&b[d]!==f[c];++c);if(f&&c!==e){if(c in a)throw j=this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||"<native JS>",new cc.builtin.TypeError(j+"() got multiple values for keyword argument '"+b[d]+"'");a[c]=b[d+1]}else{if(!i)throw j=this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||"<native JS>",new cc.builtin.TypeError(j+"() got an unexpected keyword argument '"+b[d]+"'");h.push(new cc.builtin.str(b[d])),h.push(b[d+1])}}return i&&a.unshift(h),this.func_code.apply(this.func_globals,a)},cc.builtin.func.prototype.tp$getattr=function(a){return this[a]},cc.builtin.func.prototype.tp$setattr=function(a,b){this[a]=b},cc.builtin.func.prototype.ob$type=cc.builtin.type.makeTypeObj("function",new cc.builtin.func(null,null)),cc.builtin.func.prototype.$r=function(){var a=this.func_code&&this.func_code.co_name&&this.func_code.co_name.v||"<native JS>";return new cc.builtin.str("<function "+a+">")},cc.builtin.seqtype=function(){throw new cc.builtin.ExternalError("Cannot instantiate abstract Sk.builtin.seqtype class")},cc.abstr.setUpInheritance("SequenceType",cc.builtin.seqtype,cc.builtin.object),cc.builtin.seqtype.sk$abstract=!0,cc.builtin.seqtype.prototype.__len__=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("__len__",arguments,0,0,!1,!0),new cc.builtin.int_(a.sq$length())}),cc.builtin.seqtype.prototype.__iter__=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("__iter__",arguments,0,0,!1,!0),a.tp$iter()}),cc.builtin.seqtype.prototype.__contains__=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("__contains__",arguments,1,1,!1,!0),a.sq$contains(b)?cc.builtin.bool.true$:cc.builtin.bool.false$}),cc.builtin.seqtype.prototype.__getitem__=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("__getitem__",arguments,1,1,!1,!0),a.mp$subscript(b)}),cc.builtin.seqtype.prototype.__add__=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("__add__",arguments,1,1,!1,!0),a.sq$concat(b)}),cc.builtin.seqtype.prototype.__mul__=new cc.builtin.func(function(a,b){if(cc.builtin.pyCheckArgs("__mul__",arguments,1,1,!1,!0),!cc.misceval.isIndex(b))throw new cc.builtin.TypeError("can't multiply sequence by non-int of type '"+cc.abstr.typeName(b)+"'");return a.sq$repeat(b)}),cc.builtin.seqtype.prototype.__rmul__=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("__rmul__",arguments,1,1,!1,!0),a.sq$repeat(b)}),cc.builtin.interned={},cc.builtin.str=function(a){var b;if(void 0===a&&(a=""),a instanceof cc.builtin.str)return a;if(!(this instanceof cc.builtin.str))return new cc.builtin.str(a);if(a===!0)b="True";else if(a===!1)b="False";else if(null===a||a instanceof cc.builtin.none)b="None";else if(a instanceof cc.builtin.bool)b=a.v?"True":"False";else if("number"==typeof a)b=a.toString(),"Infinity"===b?b="inf":"-Infinity"===b&&(b="-inf");else{if("string"!=typeof a){if(void 0!==a.tp$str){if(b=a.tp$str(),!(b instanceof cc.builtin.str))throw new cc.builtin.ValueError("__str__ didn't return a str");return b}return cc.misceval.objectRepr(a)}b=a}return cc.builtin.interned["1"+b]?cc.builtin.interned["1"+b]:(this.__class__=cc.builtin.str,this.v=b,this.v=this.v,cc.builtin.interned["1"+b]=this,this)},bc.exportSymbol("Sk.builtin.str",cc.builtin.str),cc.abstr.setUpInheritance("str",cc.builtin.str,cc.builtin.seqtype),cc.builtin.str.prototype.mp$subscript=function(a){var b;if(cc.misceval.isIndex(a)){if(a=cc.misceval.asIndex(a),0>a&&(a=this.v.length+a),0>a||a>=this.v.length)throw new cc.builtin.IndexError("string index out of range");return new cc.builtin.str(this.v.charAt(a))}if(a instanceof cc.builtin.slice)return b="",a.sssiter$(this,function(a,c){a>=0&&a<c.v.length&&(b+=c.v.charAt(a))}),new cc.builtin.str(b);throw new cc.builtin.TypeError("string indices must be integers, not "+cc.abstr.typeName(a))},cc.builtin.str.prototype.sq$length=function(){return this.v.length},cc.builtin.str.prototype.sq$concat=function(a){var b;if(!a||!cc.builtin.checkString(a))throw b=cc.abstr.typeName(a),new cc.builtin.TypeError("cannot concatenate 'str' and '"+b+"' objects");return new cc.builtin.str(this.v+a.v)},cc.builtin.str.prototype.nb$add=cc.builtin.str.prototype.sq$concat,cc.builtin.str.prototype.nb$inplace_add=cc.builtin.str.prototype.sq$concat,cc.builtin.str.prototype.sq$repeat=function(a){var b,c;if(!cc.misceval.isIndex(a))throw new cc.builtin.TypeError("can't multiply sequence by non-int of type '"+cc.abstr.typeName(a)+"'");for(a=cc.misceval.asIndex(a),c="",b=0;a>b;++b)c+=this.v;return new cc.builtin.str(c)},cc.builtin.str.prototype.nb$multiply=cc.builtin.str.prototype.sq$repeat,cc.builtin.str.prototype.nb$inplace_multiply=cc.builtin.str.prototype.sq$repeat,cc.builtin.str.prototype.sq$item=function(){bc.asserts.fail()},cc.builtin.str.prototype.sq$slice=function(a,b){return a=cc.builtin.asnum$(a),b=cc.builtin.asnum$(b),0>a&&(a=0),new cc.builtin.str(this.v.substr(a,b-a))},cc.builtin.str.prototype.sq$contains=function(a){if(!(a instanceof cc.builtin.str))throw new cc.builtin.TypeError("TypeError: 'In <string> requires string as left operand");return-1!=this.v.indexOf(a.v)},cc.builtin.str.prototype.__iter__=new cc.builtin.func(function(a){return new cc.builtin.str_iter_(a)}),cc.builtin.str.prototype.tp$iter=function(){return new cc.builtin.str_iter_(this)},cc.builtin.str.prototype.tp$richcompare=function(a,b){if(!(a instanceof cc.builtin.str))return void 0;switch(b){case"Lt":return this.v<a.v;case"LtE":return this.v<=a.v;case"Eq":return this.v===a.v;case"NotEq":return this.v!==a.v;case"Gt":return this.v>a.v;case"GtE":return this.v>=a.v;default:bc.asserts.fail()}},cc.builtin.str.prototype.$r=function(){var a,b,c,d,e,f="'";for(-1!==this.v.indexOf("'")&&-1===this.v.indexOf('"')&&(f='"'),e=this.v.length,d=f,c=0;e>c;++c)b=this.v.charAt(c),b===f||"\\"===b?d+="\\"+b:" "===b?d+="\\t":"\n"===b?d+="\\n":"\r"===b?d+="\\r":" ">b||b>=127?(a=b.charCodeAt(0).toString(16),a.length<2&&(a="0"+a),d+="\\x"+a):d+=b;return d+=f,new cc.builtin.str(d)},cc.builtin.str.re_escape_=function(a){var b,c,d=[],e=/^[A-Za-z0-9]+$/;for(c=0;c<a.length;++c)b=a.charAt(c),e.test(b)?d.push(b):"\\000"===b?d.push("\\000"):d.push("\\"+b);return d.join("")},cc.builtin.str.prototype.lower=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("lower",arguments,1,1),new cc.builtin.str(a.v.toLowerCase())}),cc.builtin.str.prototype.upper=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("upper",arguments,1,1),new cc.builtin.str(a.v.toUpperCase())}),cc.builtin.str.prototype.capitalize=new cc.builtin.func(function(a){var b,c,d;if(cc.builtin.pyCheckArgs("capitalize",arguments,1,1),d=a.v,0===d.length)return new cc.builtin.str("");for(c=d.charAt(0).toUpperCase(),b=1;b<d.length;b++)c+=d.charAt(b).toLowerCase();return new cc.builtin.str(c)}),cc.builtin.str.prototype.join=new cc.builtin.func(function(a,b){var c,d,e;for(cc.builtin.pyCheckArgs("join",arguments,2,2),cc.builtin.pyCheckType("seq","iterable",cc.builtin.checkIterable(b)),e=[],c=b.tp$iter(),d=c.tp$iternext();void 0!==d;d=c.tp$iternext()){if(d.constructor!==cc.builtin.str)throw new cc.builtin.TypeError("TypeError: sequence item "+e.length+": expected string, "+typeof d+" found");e.push(d.v)}return new cc.builtin.str(e.join(a.v))}),cc.builtin.str.prototype.split=new cc.builtin.func(function(a,b,c){var d,e,f,g,h,i,j;if(cc.builtin.pyCheckArgs("split",arguments,1,3),(void 0===b||b instanceof cc.builtin.none)&&(b=null),null!==b&&!cc.builtin.checkString(b))throw new cc.builtin.TypeError("expected a string");if(null!==b&&""===b.v)throw new cc.builtin.ValueError("empty separator");if(void 0!==c&&!cc.builtin.checkInt(c))throw new cc.builtin.TypeError("an integer is required");for(c=cc.builtin.asnum$(c),j=/[\s]+/g,i=a.v,null===b?i=bc.string.trimLeft(i):(h=b.v.replace(/([.*+?=|\\\/()\[\]\{\}^$])/g,"\\$1"),j=new RegExp(h,"g")),g=[],e=0,d=0;null!=(f=j.exec(i))&&f.index!==j.lastIndex&&(g.push(new cc.builtin.str(i.substring(e,f.index))),e=j.lastIndex,d+=1,!(c&&d>=c)););return i=i.substring(e),(null!==b||i.length>0)&&g.push(new cc.builtin.str(i)),new cc.builtin.list(g)}),cc.builtin.str.prototype.strip=new cc.builtin.func(function(a,b){var c,d;if(cc.builtin.pyCheckArgs("strip",arguments,1,2),void 0!==b&&!cc.builtin.checkString(b))throw new cc.builtin.TypeError("strip arg must be None or str");return void 0===b?d=/^\s+|\s+$/g:(c=cc.builtin.str.re_escape_(b.v),d=new RegExp("^["+c+"]+|["+c+"]+$","g")),new cc.builtin.str(a.v.replace(d,""))}),cc.builtin.str.prototype.lstrip=new cc.builtin.func(function(a,b){var c,d;if(cc.builtin.pyCheckArgs("lstrip",arguments,1,2),void 0!==b&&!cc.builtin.checkString(b))throw new cc.builtin.TypeError("lstrip arg must be None or str");return void 0===b?d=/^\s+/g:(c=cc.builtin.str.re_escape_(b.v),d=new RegExp("^["+c+"]+","g")),new cc.builtin.str(a.v.replace(d,""))}),cc.builtin.str.prototype.rstrip=new cc.builtin.func(function(a,b){var c,d;if(cc.builtin.pyCheckArgs("rstrip",arguments,1,2),void 0!==b&&!cc.builtin.checkString(b))throw new cc.builtin.TypeError("rstrip arg must be None or str");return void 0===b?d=/\s+$/g:(c=cc.builtin.str.re_escape_(b.v),d=new RegExp("["+c+"]+$","g")),new cc.builtin.str(a.v.replace(d,""))}),cc.builtin.str.prototype.partition=new cc.builtin.func(function(a,b){var c,d;return cc.builtin.pyCheckArgs("partition",arguments,2,2),cc.builtin.pyCheckType("sep","string",cc.builtin.checkString(b)),d=new cc.builtin.str(b),c=a.v.indexOf(d.v),0>c?new cc.builtin.tuple([a,cc.builtin.str.$emptystr,cc.builtin.str.$emptystr]):new cc.builtin.tuple([new cc.builtin.str(a.v.substring(0,c)),d,new cc.builtin.str(a.v.substring(c+d.v.length))])}),cc.builtin.str.prototype.rpartition=new cc.builtin.func(function(a,b){var c,d;return cc.builtin.pyCheckArgs("rpartition",arguments,2,2),cc.builtin.pyCheckType("sep","string",cc.builtin.checkString(b)),d=new cc.builtin.str(b),c=a.v.lastIndexOf(d.v),0>c?new cc.builtin.tuple([cc.builtin.str.$emptystr,cc.builtin.str.$emptystr,a]):new cc.builtin.tuple([new cc.builtin.str(a.v.substring(0,c)),d,new cc.builtin.str(a.v.substring(c+d.v.length))])}),cc.builtin.str.prototype.count=new cc.builtin.func(function(a,b,c,d){var e,f,g,h;if(cc.builtin.pyCheckArgs("count",arguments,2,4),!cc.builtin.checkString(b))throw new cc.builtin.TypeError("expected a character buffer object");if(void 0!==c&&!cc.builtin.checkInt(c))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0!==d&&!cc.builtin.checkInt(d))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");return void 0===c?c=0:(c=cc.builtin.asnum$(c),c=c>=0?c:a.v.length+c),void 0===d?d=a.v.length:(d=cc.builtin.asnum$(d),d=d>=0?d:a.v.length+d),e=b.v.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),h=new RegExp(e,"g"),g=a.v.slice(c,d),f=g.match(h),f?new cc.builtin.int_(f.length):new cc.builtin.int_(0)}),cc.builtin.str.prototype.ljust=new cc.builtin.func(function(a,b,c){var d;if(cc.builtin.pyCheckArgs("ljust",arguments,2,3),!cc.builtin.checkInt(b))throw new cc.builtin.TypeError("integer argument exepcted, got "+cc.abstr.typeName(b));if(void 0!==c&&(!cc.builtin.checkString(c)||1!==c.v.length))throw new cc.builtin.TypeError("must be char, not "+cc.abstr.typeName(c));return c=void 0===c?" ":c.v,b=cc.builtin.asnum$(b),a.v.length>=b?a:(d=Array.prototype.join.call({length:Math.floor(b-a.v.length)+1},c),new cc.builtin.str(a.v+d))}),cc.builtin.str.prototype.rjust=new cc.builtin.func(function(a,b,c){var d;if(cc.builtin.pyCheckArgs("rjust",arguments,2,3),!cc.builtin.checkInt(b))throw new cc.builtin.TypeError("integer argument exepcted, got "+cc.abstr.typeName(b));if(void 0!==c&&(!cc.builtin.checkString(c)||1!==c.v.length))throw new cc.builtin.TypeError("must be char, not "+cc.abstr.typeName(c));return c=void 0===c?" ":c.v,b=cc.builtin.asnum$(b),a.v.length>=b?a:(d=Array.prototype.join.call({length:Math.floor(b-a.v.length)+1},c),new cc.builtin.str(d+a.v))}),cc.builtin.str.prototype.center=new cc.builtin.func(function(a,b,c){var d,e;if(cc.builtin.pyCheckArgs("center",arguments,2,3),!cc.builtin.checkInt(b))throw new cc.builtin.TypeError("integer argument exepcted, got "+cc.abstr.typeName(b));if(void 0!==c&&(!cc.builtin.checkString(c)||1!==c.v.length))throw new cc.builtin.TypeError("must be char, not "+cc.abstr.typeName(c));return c=void 0===c?" ":c.v,b=cc.builtin.asnum$(b),a.v.length>=b?a:(e=Array.prototype.join.call({length:Math.floor((b-a.v.length)/2)+1},c),d=e+a.v+e,d.length<b&&(d+=c),new cc.builtin.str(d))}),cc.builtin.str.prototype.find=new cc.builtin.func(function(a,b,c,d){var e;if(cc.builtin.pyCheckArgs("find",arguments,2,4),!cc.builtin.checkString(b))throw new cc.builtin.TypeError("expected a character buffer object");if(void 0!==c&&!cc.builtin.checkInt(c))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0!==d&&!cc.builtin.checkInt(d))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");return void 0===c?c=0:(c=cc.builtin.asnum$(c),c=c>=0?c:a.v.length+c),void 0===d?d=a.v.length:(d=cc.builtin.asnum$(d),d=d>=0?d:a.v.length+d),e=a.v.indexOf(b.v,c),e=e>=c&&d>e?e:-1,new cc.builtin.int_(e)}),cc.builtin.str.prototype.index=new cc.builtin.func(function(a,b,c,d){var e;if(cc.builtin.pyCheckArgs("index",arguments,2,4),e=cc.misceval.callsim(a.find,a,b,c,d),-1===cc.builtin.asnum$(e))throw new cc.builtin.ValueError("substring not found");return e}),cc.builtin.str.prototype.rfind=new cc.builtin.func(function(a,b,c,d){var e;if(cc.builtin.pyCheckArgs("rfind",arguments,2,4),!cc.builtin.checkString(b))throw new cc.builtin.TypeError("expected a character buffer object");if(void 0!==c&&!cc.builtin.checkInt(c))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");if(void 0!==d&&!cc.builtin.checkInt(d))throw new cc.builtin.TypeError("slice indices must be integers or None or have an __index__ method");return void 0===c?c=0:(c=cc.builtin.asnum$(c),c=c>=0?c:a.v.length+c),void 0===d?d=a.v.length:(d=cc.builtin.asnum$(d),d=d>=0?d:a.v.length+d),e=a.v.lastIndexOf(b.v,d),e=e!==d?e:a.v.lastIndexOf(b.v,d-1),e=e>=c&&d>e?e:-1,new cc.builtin.int_(e)}),cc.builtin.str.prototype.rindex=new cc.builtin.func(function(a,b,c,d){var e;if(cc.builtin.pyCheckArgs("rindex",arguments,2,4),e=cc.misceval.callsim(a.rfind,a,b,c,d),-1===cc.builtin.asnum$(e))throw new cc.builtin.ValueError("substring not found");return e}),cc.builtin.str.prototype.startswith=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("startswith",arguments,2,2),cc.builtin.pyCheckType("tgt","string",cc.builtin.checkString(b)),new cc.builtin.bool(0===a.v.indexOf(b.v))}),cc.builtin.str.prototype.endswith=new cc.builtin.func(function(a,b){return cc.builtin.pyCheckArgs("endswith",arguments,2,2),cc.builtin.pyCheckType("tgt","string",cc.builtin.checkString(b)),new cc.builtin.bool(-1!==a.v.indexOf(b.v,a.v.length-b.v.length))}),cc.builtin.str.prototype.replace=new cc.builtin.func(function(a,b,c,d){function e(a){return f++,d>=f?c.v:a}var f,g;if(cc.builtin.pyCheckArgs("replace",arguments,3,4),cc.builtin.pyCheckType("oldS","string",cc.builtin.checkString(b)),cc.builtin.pyCheckType("newS","string",cc.builtin.checkString(c)),void 0!==d&&!cc.builtin.checkInt(d))throw new cc.builtin.TypeError("integer argument expected, got "+cc.abstr.typeName(d));return d=cc.builtin.asnum$(d),g=new RegExp(cc.builtin.str.re_escape_(b.v),"g"),void 0===d||0>d?new cc.builtin.str(a.v.replace(g,c.v)):(f=0,new cc.builtin.str(a.v.replace(g,e)))}),cc.builtin.str.prototype.zfill=new cc.builtin.func(function(a,b){var c,d,e,f=a.v,g="";if(cc.builtin.pyCheckArgs("zfill",arguments,2,2),!cc.builtin.checkInt(b))throw new cc.builtin.TypeError("integer argument exepected, got "+cc.abstr.typeName(b));d=b.v-f.length,e="+"===f[0]||"-"===f[0]?1:0;for(var h=0;d>h;h++)g+="0";return c=f.substr(0,e)+g+f.substr(e),new cc.builtin.str(c)}),cc.builtin.str.prototype.isdigit=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isdigit",arguments,1,1),new cc.builtin.bool(/^\d+$/.test(a.v))}),cc.builtin.str.prototype.isspace=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isspace",arguments,1,1),new cc.builtin.bool(/^\s+$/.test(a.v))}),cc.builtin.str.prototype.expandtabs=new cc.builtin.func(function(a,b){var c,d;if(cc.builtin.pyCheckArgs("expandtabs",arguments,1,2),void 0!==b&&!cc.builtin.checkInt(b))throw new cc.builtin.TypeError("integer argument exepected, got "+cc.abstr.typeName(b));return b=void 0===b?8:cc.builtin.asnum$(b),c=new Array(b+1).join(" "),d=a.v.replace(/([^\r\n\t]*)\t/g,function(a,d){return d+c.slice(d.length%b)}),new cc.builtin.str(d)}),cc.builtin.str.prototype.swapcase=new cc.builtin.func(function(a){var b;return cc.builtin.pyCheckArgs("swapcase",arguments,1,1),b=a.v.replace(/[a-z]/gi,function(a){var b=a.toLowerCase();return b===a?a.toUpperCase():b}),new cc.builtin.str(b)}),cc.builtin.str.prototype.splitlines=new cc.builtin.func(function(a,b){var c,d,e,f=a.v,g=0,h=a.v.length,i=[],j=0;if(cc.builtin.pyCheckArgs("splitlines",arguments,1,2),void 0!==b&&!cc.builtin.checkBool(b))throw new cc.builtin.TypeError("boolean argument expected, got "+cc.abstr.typeName(b));for(b=void 0===b?!1:b.v,g=0;h>g;g++)c=f.charAt(g),"\n"===f.charAt(g+1)&&"\r"===c?(d=g+2,e=f.slice(j,d),b||(e=e.replace(/(\r|\n)/g,"")),i.push(new cc.builtin.str(e)),j=d):("\n"===c&&"\r"!==f.charAt(g-1)||"\r"===c)&&(d=g+1,e=f.slice(j,d),b||(e=e.replace(/(\r|\n)/g,"")),i.push(new cc.builtin.str(e)),j=d);return h>j&&(d=h,e=f.slice(j,d),b||(e=e.replace(/(\r|\n)/g,"")),i.push(new cc.builtin.str(e))),new cc.builtin.list(i)}),cc.builtin.str.prototype.title=new cc.builtin.func(function(a){var b;return cc.builtin.pyCheckArgs("title",arguments,1,1),b=a.v.replace(/[a-z][a-z]*/gi,function(a){return a[0].toUpperCase()+a.substr(1).toLowerCase()}),new cc.builtin.str(b)}),cc.builtin.str.prototype.isalpha=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isalpha",arguments,1,1),new cc.builtin.bool(a.v.length&&bc.string.isAlpha(a.v))}),cc.builtin.str.prototype.isalnum=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isalnum",arguments,1,1),new cc.builtin.bool(a.v.length&&bc.string.isAlphaNumeric(a.v))}),cc.builtin.str.prototype.isnumeric=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isnumeric",arguments,1,1),new cc.builtin.bool(a.v.length&&bc.string.isNumeric(a.v))}),cc.builtin.str.prototype.islower=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("islower",arguments,1,1),new cc.builtin.bool(a.v.length&&/[a-z]/.test(a.v)&&!/[A-Z]/.test(a.v))}),cc.builtin.str.prototype.isupper=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("isupper",arguments,1,1),new cc.builtin.bool(a.v.length&&!/[a-z]/.test(a.v)&&/[A-Z]/.test(a.v))}),cc.builtin.str.prototype.istitle=new cc.builtin.func(function(a){var b,c,d=a.v,e=!1,f=!1;for(cc.builtin.pyCheckArgs("istitle",arguments,1,1),b=0;b<d.length;b++)if(c=d.charAt(b),!/[a-z]/.test(c)&&/[A-Z]/.test(c)){if(f)return new cc.builtin.bool(!1);f=!0,e=!0}else if(/[a-z]/.test(c)&&!/[A-Z]/.test(c)){if(!f)return new cc.builtin.bool(!1);e=!0}else f=!1;return new cc.builtin.bool(e)}),cc.builtin.str.prototype.nb$remainder=function(a){var b,c,d,e;return a.constructor===cc.builtin.tuple||void 0!==a.mp$subscript&&a.constructor!==cc.builtin.str||(a=new cc.builtin.tuple([a])),e=/%(\([a-zA-Z0-9]+\))?([#0 +\-]+)?(\*|[0-9]+)?(\.(\*|[0-9]+))?[hlL]?([diouxXeEfFgGcrs%])/g,d=0,c=function(b,c,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;if(f=cc.builtin.asnum$(f),g=cc.builtin.asnum$(g),(void 0===c||""===c)&&(x=d++),""===g&&(g=void 0),w=!1,v=!1,u=!1,t=!1,s=!1,e&&(-1!==e.indexOf("-")?v=!0:-1!==e.indexOf("0")&&(w=!0),-1!==e.indexOf("+")?t=!0:-1!==e.indexOf(" ")&&(u=!0),s=-1!==e.indexOf("#")),g&&(g=parseInt(g.substr(1),10)),r=function(a,b){var c,d,e,f,h,i;if(b=cc.builtin.asnum$(b),f=!1,e=!1,"number"==typeof a?(0>a&&(a=-a,f=!0),h=a.toString(b)):a instanceof cc.builtin.float_?(h=a.str$(b,!1),h.length>2&&".0"===h.substr(-2)&&(h=h.substr(0,h.length-2)),f=a.nb$isnegative()):a instanceof cc.builtin.int_?(h=a.str$(b,!1),f=a.nb$isnegative()):a instanceof cc.builtin.lng&&(h=a.str$(b,!1),f=a.nb$isnegative()),bc.asserts.assert(void 0!==h,"unhandled number format"),c=!1,g)for(i=h.length;g>i;++i)h="0"+h,c=!0;return d="",f?d="-":t?d="+"+d:u&&(d=" "+d),s&&(16===b?d+="0x":8!==b||c||"0"===h||(d+="0")),[d,h]},q=function(a){var b,c,d=a[0],e=a[1];if(f)if(f=parseInt(f,10),b=e.length+d.length,w)for(c=b;f>c;++c)e="0"+e;else if(v)for(c=b;f>c;++c)e+=" ";else for(c=b;f>c;++c)d=" "+d;return d+e},a.constructor===cc.builtin.tuple)p=a.v[x];else if(void 0!==a.mp$subscript&&void 0!==c)o=c.substring(1,c.length-1),p=a.mp$subscript(new cc.builtin.str(o));else{if(a.constructor!==cc.builtin.dict&&a.constructor!==cc.builtin.list)throw new cc.builtin.AttributeError(a.tp$name+" instance has no attribute 'mp$subscript'");p=a}if(m=10,"d"===i||"i"===i)return q(r(p,10));if("o"===i)return q(r(p,8));if("x"===i)return q(r(p,16));if("X"===i)return q(r(p,16)).toUpperCase();if("f"===i||"F"===i||"e"===i||"E"===i||"g"===i||"G"===i)return l=cc.builtin.asnum$(p),"string"==typeof l&&(l=Number(l)),l===1/0?"inf":l===-(1/0)?"-inf":isNaN(l)?"nan":(k=["toExponential","toFixed","toPrecision"]["efg".indexOf(i.toLowerCase())],(void 0===g||""===g)&&("e"===i||"E"===i?g=6:("f"===i||"F"===i)&&(g=7)),j=l[k](g),cc.builtin.checkFloat(p)&&0===l&&1/l===-(1/0)&&(j="-"+j),-1!=="EFG".indexOf(i)&&(j=j.toUpperCase()),q(["",j]));if("c"===i){if("number"==typeof p)return String.fromCharCode(p);if(p instanceof cc.builtin.int_)return String.fromCharCode(p.v);if(p instanceof cc.builtin.float_)return String.fromCharCode(p.v);if(p instanceof cc.builtin.lng)return String.fromCharCode(p.str$(10,!1)[0]);if(p.constructor===cc.builtin.str)return p.v.substr(0,1);throw new cc.builtin.TypeError("an integer is required")}return"r"===i?(n=cc.builtin.repr(p),g?n.v.substr(0,g):n.v):"s"===i?(n=new cc.builtin.str(p),g?n.v.substr(0,g):(f&&(n.v=q([" ",n.v])),n.v)):"%"===i?"%":void 0},b=this.v.replace(e,c),new cc.builtin.str(b)},cc.builtin.str_iter_=function(a){return this instanceof cc.builtin.str_iter_?(this.$index=0,this.$obj=a.v.slice(),this.sq$length=this.$obj.length,this.tp$iter=this,this.tp$iternext=function(){return this.$index>=this.sq$length?void 0:new cc.builtin.str(this.$obj.substr(this.$index++,1))},this.$r=function(){return new cc.builtin.str("iterator")},this):new cc.builtin.str_iter_(a)},cc.abstr.setUpInheritance("iterator",cc.builtin.str_iter_,cc.builtin.object),cc.builtin.str_iter_.prototype.__class__=cc.builtin.str_iter_,cc.builtin.str_iter_.prototype.__iter__=new cc.builtin.func(function(a){return cc.builtin.pyCheckArgs("__iter__",arguments,0,0,!0,!1),a}),cc.builtin.str_iter_.prototype.next=new cc.builtin.func(function(a){var b=a.tp$iternext();if(void 0===b)throw new cc.builtin.StopIteration;return b}),cc.Tokenizer=function(a,b,c){this.filename=a,this.callback=c,this.lnum=0,this.parenlev=0,this.parenstack=[],this.continued=!1,this.namechars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_",this.numchars="0123456789",this.contstr="",this.needcont=!1,this.contline=void 0,this.indents=[0],this.endprog=/.*/,this.strstart=[-1,-1],this.interactive=b,this.doneFunc=function(){var a;for(a=1;a<this.indents.length;++a)if(this.callback(cc.Tokenizer.Tokens.T_DEDENT,"",[this.lnum,0],[this.lnum,0],""))return"done";return this.callback(cc.Tokenizer.Tokens.T_ENDMARKER,"",[this.lnum,0],[this.lnum,0],"")?"done":"failed"}},cc.Tokenizer.Tokens={T_ENDMARKER:0,T_NAME:1,T_NUMBER:2,T_STRING:3,T_NEWLINE:4,T_INDENT:5,T_DEDENT:6,T_LPAR:7,T_RPAR:8,T_LSQB:9,T_RSQB:10,T_COLON:11,T_COMMA:12,T_SEMI:13,T_PLUS:14,T_MINUS:15,T_STAR:16,T_SLASH:17,T_VBAR:18,T_AMPER:19,T_LESS:20,T_GREATER:21,T_EQUAL:22,T_DOT:23,T_PERCENT:24,T_BACKQUOTE:25,T_LBRACE:26,T_RBRACE:27,T_EQEQUAL:28,T_NOTEQUAL:29,T_LESSEQUAL:30,T_GREATEREQUAL:31,T_TILDE:32,T_CIRCUMFLEX:33,T_LEFTSHIFT:34,T_RIGHTSHIFT:35,T_DOUBLESTAR:36,T_PLUSEQUAL:37,T_MINEQUAL:38,T_STAREQUAL:39,T_SLASHEQUAL:40,T_PERCENTEQUAL:41,T_AMPEREQUAL:42,T_VBAREQUAL:43,T_CIRCUMFLEXEQUAL:44,T_LEFTSHIFTEQUAL:45,T_RIGHTSHIFTEQUAL:46,T_DOUBLESTAREQUAL:47,T_DOUBLESLASH:48,T_DOUBLESLASHEQUAL:49,T_AT:50,T_OP:51,T_COMMENT:52,T_NL:53,T_RARROW:54,T_ERRORTOKEN:55,T_N_TOKENS:56,T_NT_OFFSET:256};var ec="#[^\\r\\n]*",fc="[a-zA-Z_]\\w*",gc="0[bB][01]*",hc="0[xX][\\da-fA-F]*[lL]?",ic="0[oO]?[0-7]*[lL]?",jc="[1-9]\\d*[lL]?",kc=c(gc,hc,ic,jc),lc="[eE][-+]?\\d+",mc=c("\\d+\\.\\d*","\\.\\d+")+d(lc),nc="\\d+"+lc,oc=c(mc,nc),pc=c("\\d+[jJ]",oc+"[jJ]"),qc=c(pc,oc,kc),rc="^[^'\\\\]*(?:\\\\.[^'\\\\]*)*'",sc='^[^"\\\\]*(?:\\\\.[^"\\\\]*)*"',tc="[^'\\\\]*(?:(?:\\\\.|'(?!''))[^'\\\\]*)*'''",uc='[^"\\\\]*(?:(?:\\\\.|"(?!""))[^"\\\\]*)*"""',vc=c("[ubUB]?[rR]?'''",'[ubUB]?[rR]?"""'),wc=(c("[uU]?[rR]?'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*'",'[uU]?[rR]?"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*"'),
c("\\*\\*=?",">>=?","<<=?","<>","!=","//=?","->","[+\\-*/%&|^=<>]=?","~")),xc="[\\][(){}]",yc=c("\\r?\\n","[:;.,`@]"),zc=c(wc,xc,yc),Ac=c("[uUbB]?[rR]?'[^\\n'\\\\]*(?:\\\\.[^\\n'\\\\]*)*"+c("'","\\\\\\r?\\n"),'[uUbB]?[rR]?"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*'+c('"',"\\\\\\r?\\n")),Bc=c("\\\\\\r?\\n",ec,vc),Cc="^"+c(Bc,qc,zc,Ac,fc),Dc={"'''":!0,'"""':!0,"r'''":!0,'r"""':!0,"R'''":!0,'R"""':!0,"u'''":!0,'u"""':!0,"U'''":!0,'U"""':!0,"b'''":!0,'b"""':!0,"B'''":!0,'B"""':!0,"ur'''":!0,'ur"""':!0,"Ur'''":!0,'Ur"""':!0,"uR'''":!0,'uR"""':!0,"UR'''":!0,'UR"""':!0,"br'''":!0,'br"""':!0,"Br'''":!0,'Br"""':!0,"bR'''":!0,'bR"""':!0,"BR'''":!0,'BR"""':!0},Ec={"'":!0,'"':!0,"r'":!0,'r"':!0,"R'":!0,'R"':!0,"u'":!0,'u"':!0,"U'":!0,'U"':!0,"b'":!0,'b"':!0,"B'":!0,'B"':!0,"ur'":!0,'ur"':!0,"Ur'":!0,'Ur"':!0,"uR'":!0,'uR"':!0,"UR'":!0,'UR"':!0,"br'":!0,'br"':!0,"Br'":!0,'Br"':!0,"bR'":!0,'bR"':!0,"BR'":!0,'BR"':!0};!function(){var a;for(a in Dc);for(a in Ec);}();var Fc=8;cc.Tokenizer.prototype.generateTokens=function(a){var b,c,d,g,h,i,j,k,l,m,n,o,p,q,r,s=new RegExp(Cc),t=new RegExp(tc,"g"),u=new RegExp(uc,"g"),v={"'":new RegExp(rc,"g"),'"':new RegExp(sc,"g"),"'''":t,'"""':u,"r'''":t,'r"""':u,"u'''":t,'u"""':u,"b'''":t,'b"""':u,"ur'''":t,'ur"""':u,"br'''":t,'br"""':u,"R'''":t,'R"""':u,"U'''":t,'U"""':u,"B'''":t,'B"""':u,"uR'''":t,'uR"""':u,"Ur'''":t,'Ur"""':u,"UR'''":t,'UR"""':u,"bR'''":t,'bR"""':u,"Br'''":t,'Br"""':u,"BR'''":t,'BR"""':u,r:null,R:null,u:null,U:null,b:null,B:null};if(a||(a=""),this.lnum+=1,o=0,r=a.length,this.contstr.length>0){if(!a)throw new cc.builtin.SyntaxError("EOF in multi-line string",this.filename,this.strstart[0],this.strstart[1],{kind:"STRING_EOF",line:this.contline});if(this.endprog.lastIndex=0,n=this.endprog.test(a),!n)return this.needcont&&"\\\n"!==a.substring(a.length-2)&&"\\\r\n"!==a.substring(a.length-3)?this.callback(cc.Tokenizer.Tokens.T_ERRORTOKEN,this.contstr+a,this.strstart,[this.lnum,a.length],this.contline)?"done":(this.contstr="",this.contline=void 0,!1):(this.contstr+=a,this.contline=this.contline+a,!1);if(o=q=this.endprog.lastIndex,this.callback(cc.Tokenizer.Tokens.T_STRING,this.contstr+a.substring(0,q),this.strstart,[this.lnum,q],this.contline+a))return"done";this.contstr="",this.needcont=!1,this.contline=void 0}else if(0!==this.parenlev||this.continued){if(!a)throw new cc.builtin.SyntaxError("EOF in multi-line statement",this.filename,this.lnum,0,{kind:"STATEMENT_EOF",parenlev:this.parenlev,parenstack:this.parenstack});this.continued=!1}else{if(!a)return this.doneFunc();for(p=0;r>o;){if(" "===a.charAt(o))p+=1;else if(" "===a.charAt(o))p=(p/Fc+1)*Fc;else{if("\f"!==a.charAt(o))break;p=0}o+=1}if(o===r)return this.doneFunc();if(-1!=="#\r\n".indexOf(a.charAt(o))){if("#"===a.charAt(o))return m=f(a.substring(o),"\r\n"),b=o+m.length,this.callback(cc.Tokenizer.Tokens.T_COMMENT,m,[this.lnum,o],[this.lnum,o+m.length],a)?"done":this.callback(cc.Tokenizer.Tokens.T_NL,a.substring(b),[this.lnum,b],[this.lnum,a.length],a)?"done":!1;if(this.callback(cc.Tokenizer.Tokens.T_NL,a.substring(o),[this.lnum,o],[this.lnum,a.length],a))return"done";if(!this.interactive)return!1}if(p>this.indents[this.indents.length-1]&&(this.indents.push(p),this.callback(cc.Tokenizer.Tokens.T_INDENT,a.substring(0,o),[this.lnum,0],[this.lnum,o],a)))return"done";for(;p<this.indents[this.indents.length-1];){if(!e(this.indents,p))throw new cc.builtin.IndentationError("unindent does not match any outer indentation level",this.filename,this.lnum,o,a);if(this.indents.splice(this.indents.length-1,1),this.callback(cc.Tokenizer.Tokens.T_DEDENT,"",[this.lnum,o],[this.lnum,o],a))return"done"}}for(;r>o;){for(l=a.charAt(o);" "===l||"\f"===l||" "===l;)o+=1,l=a.charAt(o);if(s.lastIndex=0,k=s.exec(a.substring(o))){if(j=o,q=j+k[1].length,i=[this.lnum,j],h=[this.lnum,q],o=q,g=a.substring(j,q),d=a.charAt(j),-1!==this.numchars.indexOf(d)||"."===d&&"."!==g){if(this.callback(cc.Tokenizer.Tokens.T_NUMBER,g,i,h,a))return"done"}else if("\r"===d||"\n"===d){if(c=cc.Tokenizer.Tokens.T_NEWLINE,this.parenlev>0&&(c=cc.Tokenizer.Tokens.T_NL),this.callback(c,g,i,h,a))return"done"}else if("#"===d){if(this.callback(cc.Tokenizer.Tokens.T_COMMENT,g,i,h,a))return"done"}else if(Dc.hasOwnProperty(g)){if(this.endprog=v[g],this.endprog.lastIndex=0,n=this.endprog.test(a.substring(o)),!n)return this.strstart=[this.lnum,j],this.contstr=a.substring(j),this.contline=a,!1;if(o=this.endprog.lastIndex+o,g=a.substring(j,o),this.callback(cc.Tokenizer.Tokens.T_STRING,g,i,[this.lnum,o],a))return"done"}else if(Ec.hasOwnProperty(d)||Ec.hasOwnProperty(g.substring(0,2))||Ec.hasOwnProperty(g.substring(0,3))){if("\n"===g[g.length-1])return this.strstart=[this.lnum,j],this.endprog=v[d]||v[g[1]]||v[g[2]],this.contstr=a.substring(j),this.needcont=!0,this.contline=a,!1;if(this.callback(cc.Tokenizer.Tokens.T_STRING,g,i,h,a))return"done"}else if(-1!==this.namechars.indexOf(d)){if(this.callback(cc.Tokenizer.Tokens.T_NAME,g,i,h,a))return"done"}else if("\\"===d){if(this.callback(cc.Tokenizer.Tokens.T_NL,g,i,[this.lnum,o],a))return"done";this.continued=!0}else if(-1!=="([{".indexOf(d)?(this.parenlev+=1,this.parenstack.push([d,this.lnum,o])):-1!==")]}".indexOf(d)&&(this.parenlev-=1,this.parenstack.pop()),this.callback(cc.Tokenizer.Tokens.T_OP,g,i,h,a))return"done"}else{if(this.callback(cc.Tokenizer.Tokens.T_ERRORTOKEN,a.charAt(o),[this.lnum,o],[this.lnum,o+1],a))return"done";o+=1}}return!1},cc.Tokenizer.tokenNames={0:"T_ENDMARKER",1:"T_NAME",2:"T_NUMBER",3:"T_STRING",4:"T_NEWLINE",5:"T_INDENT",6:"T_DEDENT",7:"T_LPAR",8:"T_RPAR",9:"T_LSQB",10:"T_RSQB",11:"T_COLON",12:"T_COMMA",13:"T_SEMI",14:"T_PLUS",15:"T_MINUS",16:"T_STAR",17:"T_SLASH",18:"T_VBAR",19:"T_AMPER",20:"T_LESS",21:"T_GREATER",22:"T_EQUAL",23:"T_DOT",24:"T_PERCENT",25:"T_BACKQUOTE",26:"T_LBRACE",27:"T_RBRACE",28:"T_EQEQUAL",29:"T_NOTEQUAL",30:"T_LESSEQUAL",31:"T_GREATEREQUAL",32:"T_TILDE",33:"T_CIRCUMFLEX",34:"T_LEFTSHIFT",35:"T_RIGHTSHIFT",36:"T_DOUBLESTAR",37:"T_PLUSEQUAL",38:"T_MINEQUAL",39:"T_STAREQUAL",40:"T_SLASHEQUAL",41:"T_PERCENTEQUAL",42:"T_AMPEREQUAL",43:"T_VBAREQUAL",44:"T_CIRCUMFLEXEQUAL",45:"T_LEFTSHIFTEQUAL",46:"T_RIGHTSHIFTEQUAL",47:"T_DOUBLESTAREQUAL",48:"T_DOUBLESLASH",49:"T_DOUBLESLASHEQUAL",50:"T_AT",51:"T_OP",52:"T_COMMENT",53:"T_NL",54:"T_RARROW",55:"T_ERRORTOKEN",56:"T_N_TOKENS",256:"T_NT_OFFSET"},bc.exportSymbol("Sk.Tokenizer",cc.Tokenizer),bc.exportSymbol("Sk.Tokenizer.prototype.generateTokens",cc.Tokenizer.prototype.generateTokens),bc.exportSymbol("Sk.Tokenizer.tokenNames",cc.Tokenizer.tokenNames),cc.OpMap={"(":cc.Tokenizer.Tokens.T_LPAR,")":cc.Tokenizer.Tokens.T_RPAR,"[":cc.Tokenizer.Tokens.T_LSQB,"]":cc.Tokenizer.Tokens.T_RSQB,":":cc.Tokenizer.Tokens.T_COLON,",":cc.Tokenizer.Tokens.T_COMMA,";":cc.Tokenizer.Tokens.T_SEMI,"+":cc.Tokenizer.Tokens.T_PLUS,"-":cc.Tokenizer.Tokens.T_MINUS,"*":cc.Tokenizer.Tokens.T_STAR,"/":cc.Tokenizer.Tokens.T_SLASH,"|":cc.Tokenizer.Tokens.T_VBAR,"&":cc.Tokenizer.Tokens.T_AMPER,"<":cc.Tokenizer.Tokens.T_LESS,">":cc.Tokenizer.Tokens.T_GREATER,"=":cc.Tokenizer.Tokens.T_EQUAL,".":cc.Tokenizer.Tokens.T_DOT,"%":cc.Tokenizer.Tokens.T_PERCENT,"`":cc.Tokenizer.Tokens.T_BACKQUOTE,"{":cc.Tokenizer.Tokens.T_LBRACE,"}":cc.Tokenizer.Tokens.T_RBRACE,"@":cc.Tokenizer.Tokens.T_AT,"==":cc.Tokenizer.Tokens.T_EQEQUAL,"!=":cc.Tokenizer.Tokens.T_NOTEQUAL,"<>":cc.Tokenizer.Tokens.T_NOTEQUAL,"<=":cc.Tokenizer.Tokens.T_LESSEQUAL,">=":cc.Tokenizer.Tokens.T_GREATEREQUAL,"~":cc.Tokenizer.Tokens.T_TILDE,"^":cc.Tokenizer.Tokens.T_CIRCUMFLEX,"<<":cc.Tokenizer.Tokens.T_LEFTSHIFT,">>":cc.Tokenizer.Tokens.T_RIGHTSHIFT,"**":cc.Tokenizer.Tokens.T_DOUBLESTAR,"+=":cc.Tokenizer.Tokens.T_PLUSEQUAL,"-=":cc.Tokenizer.Tokens.T_MINEQUAL,"*=":cc.Tokenizer.Tokens.T_STAREQUAL,"/=":cc.Tokenizer.Tokens.T_SLASHEQUAL,"%=":cc.Tokenizer.Tokens.T_PERCENTEQUAL,"&=":cc.Tokenizer.Tokens.T_AMPEREQUAL,"|=":cc.Tokenizer.Tokens.T_VBAREQUAL,"^=":cc.Tokenizer.Tokens.T_CIRCUMFLEXEQUAL,"<<=":cc.Tokenizer.Tokens.T_LEFTSHIFTEQUAL,">>=":cc.Tokenizer.Tokens.T_RIGHTSHIFTEQUAL,"**=":cc.Tokenizer.Tokens.T_DOUBLESTAREQUAL,"//":cc.Tokenizer.Tokens.T_DOUBLESLASH,"//=":cc.Tokenizer.Tokens.T_DOUBLESLASHEQUAL,"->":cc.Tokenizer.Tokens.T_RARROW},cc.ParseTables={sym:{and_expr:257,and_test:258,arglist:259,argument:260,arith_expr:261,assert_stmt:262,atom:263,augassign:264,break_stmt:265,classdef:266,comp_for:267,comp_if:268,comp_iter:269,comp_op:270,comparison:271,compound_stmt:272,continue_stmt:273,debugger_stmt:274,decorated:275,decorator:276,decorators:277,del_stmt:278,dictorsetmaker:279,dotted_as_name:280,dotted_as_names:281,dotted_name:282,encoding_decl:283,eval_input:284,except_clause:285,exec_stmt:286,expr:287,expr_stmt:288,exprlist:289,factor:290,file_input:291,flow_stmt:292,for_stmt:293,fpdef:294,fplist:295,funcdef:296,global_stmt:297,if_stmt:298,import_as_name:299,import_as_names:300,import_from:301,import_name:302,import_stmt:303,lambdef:304,list_for:305,list_if:306,list_iter:307,listmaker:308,not_test:309,old_lambdef:310,old_test:311,or_test:312,parameters:313,pass_stmt:314,power:315,print_stmt:316,raise_stmt:317,return_stmt:318,shift_expr:319,simple_stmt:320,single_input:256,sliceop:321,small_stmt:322,stmt:323,subscript:324,subscriptlist:325,suite:326,term:327,test:328,testlist:329,testlist1:330,testlist_comp:331,testlist_safe:332,trailer:333,try_stmt:334,varargslist:335,while_stmt:336,with_item:337,with_stmt:338,xor_expr:339,yield_expr:340,yield_stmt:341},number2symbol:{256:"single_input",257:"and_expr",258:"and_test",259:"arglist",260:"argument",261:"arith_expr",262:"assert_stmt",263:"atom",264:"augassign",265:"break_stmt",266:"classdef",267:"comp_for",268:"comp_if",269:"comp_iter",270:"comp_op",271:"comparison",272:"compound_stmt",273:"continue_stmt",274:"debugger_stmt",275:"decorated",276:"decorator",277:"decorators",278:"del_stmt",279:"dictorsetmaker",280:"dotted_as_name",281:"dotted_as_names",282:"dotted_name",283:"encoding_decl",284:"eval_input",285:"except_clause",286:"exec_stmt",287:"expr",288:"expr_stmt",289:"exprlist",290:"factor",291:"file_input",292:"flow_stmt",293:"for_stmt",294:"fpdef",295:"fplist",296:"funcdef",297:"global_stmt",298:"if_stmt",299:"import_as_name",300:"import_as_names",301:"import_from",302:"import_name",303:"import_stmt",304:"lambdef",305:"list_for",306:"list_if",307:"list_iter",308:"listmaker",309:"not_test",310:"old_lambdef",311:"old_test",312:"or_test",313:"parameters",314:"pass_stmt",315:"power",316:"print_stmt",317:"raise_stmt",318:"return_stmt",319:"shift_expr",320:"simple_stmt",321:"sliceop",322:"small_stmt",323:"stmt",324:"subscript",325:"subscriptlist",326:"suite",327:"term",328:"test",329:"testlist",330:"testlist1",331:"testlist_comp",332:"testlist_safe",333:"trailer",334:"try_stmt",335:"varargslist",336:"while_stmt",337:"with_item",338:"with_stmt",339:"xor_expr",340:"yield_expr",341:"yield_stmt"},dfas:{256:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1}],257:[[[[38,1]],[[39,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],258:[[[[40,1]],[[41,0],[0,1]]],{6:1,7:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],259:[[[[42,1],[43,2],[44,3]],[[45,4]],[[46,5],[0,2]],[[45,6]],[[46,7],[0,4]],[[42,1],[43,2],[44,3],[0,5]],[[0,6]],[[43,4],[44,3]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1,42:1,44:1}],260:[[[[45,1]],[[47,2],[48,3],[0,1]],[[45,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],261:[[[[49,1]],[[26,0],[37,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],262:[[[[21,1]],[[45,2]],[[46,3],[0,2]],[[45,4]],[[0,4]]],{21:1}],263:[[[[19,1],[8,2],[9,5],[30,4],[14,3],[15,6],[22,2]],[[19,1],[0,1]],[[0,2]],[[50,7],[51,2]],[[52,2],[53,8],[54,8]],[[55,2],[56,9]],[[57,10]],[[51,2]],[[52,2]],[[55,2]],[[15,2]]],{8:1,9:1,14:1,15:1,19:1,22:1,30:1}],264:[[[[58,1],[59,1],[60,1],[61,1],[62,1],[63,1],[64,1],[65,1],[66,1],[67,1],[68,1],[69,1]],[[0,1]]],{58:1,59:1,60:1,61:1,62:1,63:1,64:1,65:1,66:1,67:1,68:1,69:1}],265:[[[[33,1]],[[0,1]]],{33:1}],266:[[[[10,1]],[[22,2]],[[70,3],[30,4]],[[71,5]],[[52,6],[72,7]],[[0,5]],[[70,3]],[[52,6]]],{10:1}],267:[[[[29,1]],[[73,2]],[[74,3]],[[75,4]],[[76,5],[0,4]],[[0,5]]],{29:1}],268:[[[[32,1]],[[77,2]],[[76,3],[0,2]],[[0,3]]],{32:1}],269:[[[[78,1],[48,1]],[[0,1]]],{29:1,32:1}],270:[[[[79,1],[80,1],[7,2],[81,1],[79,1],[74,1],[82,1],[83,3],[84,1],[85,1]],[[0,1]],[[74,1]],[[7,1],[0,3]]],{7:1,74:1,79:1,80:1,81:1,82:1,83:1,84:1,85:1}],271:[[[[86,1]],[[87,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],272:[[[[88,1],[89,1],[90,1],[91,1],[92,1],[93,1],[94,1],[95,1]],[[0,1]]],{4:1,10:1,16:1,18:1,29:1,32:1,35:1,36:1}],273:[[[[34,1]],[[0,1]]],{34:1}],274:[[[[13,1]],[[0,1]]],{13:1}],275:[[[[96,1]],[[94,2],[91,2]],[[0,2]]],{35:1}],276:[[[[35,1]],[[97,2]],[[2,4],[30,3]],[[52,5],[98,6]],[[0,4]],[[2,4]],[[52,5]]],{35:1}],277:[[[[99,1]],[[99,1],[0,1]]],{35:1}],278:[[[[23,1]],[[73,2]],[[0,2]]],{23:1}],279:[[[[45,1]],[[70,2],[48,3],[46,4],[0,1]],[[45,5]],[[0,3]],[[45,6],[0,4]],[[48,3],[46,7],[0,5]],[[46,4],[0,6]],[[45,8],[0,7]],[[70,9]],[[45,10]],[[46,7],[0,10]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],280:[[[[97,1]],[[100,2],[0,1]],[[22,3]],[[0,3]]],{22:1}],281:[[[[101,1]],[[46,0],[0,1]]],{22:1}],282:[[[[22,1]],[[102,0],[0,1]]],{22:1}],283:[[[[22,1]],[[0,1]]],{22:1}],284:[[[[72,1]],[[2,1],[103,2]],[[0,2]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],285:[[[[104,1]],[[45,2],[0,1]],[[100,3],[46,3],[0,2]],[[45,4]],[[0,4]]],{104:1}],286:[[[[17,1]],[[86,2]],[[74,3],[0,2]],[[45,4]],[[46,5],[0,4]],[[45,6]],[[0,6]]],{17:1}],287:[[[[105,1]],[[106,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],288:[[[[72,1]],[[107,2],[47,3],[0,1]],[[72,4],[53,4]],[[72,5],[53,5]],[[0,4]],[[47,3],[0,5]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],289:[[[[86,1]],[[46,2],[0,1]],[[86,1],[0,2]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],290:[[[[37,2],[26,2],[6,2],[108,1]],[[0,1]],[[109,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],291:[[[[2,0],[103,1],[110,0]],[[0,1]]],{2:1,4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1,103:1}],292:[[[[111,1],[112,1],[113,1],[114,1],[115,1]],[[0,1]]],{5:1,20:1,27:1,33:1,34:1}],293:[[[[29,1]],[[73,2]],[[74,3]],[[72,4]],[[70,5]],[[71,6]],[[116,7],[0,6]],[[70,8]],[[71,9]],[[0,9]]],{29:1}],294:[[[[30,1],[22,2]],[[117,3]],[[0,2]],[[52,2]]],{22:1,30:1}],295:[[[[118,1]],[[46,2],[0,1]],[[118,1],[0,2]]],{22:1,30:1}],296:[[[[4,1]],[[22,2]],[[119,3]],[[70,4]],[[71,5]],[[0,5]]],{4:1}],297:[[[[28,1]],[[22,2]],[[46,1],[0,2]]],{28:1}],298:[[[[32,1]],[[45,2]],[[70,3]],[[71,4]],[[116,5],[120,1],[0,4]],[[70,6]],[[71,7]],[[0,7]]],{32:1}],299:[[[[22,1]],[[100,2],[0,1]],[[22,3]],[[0,3]]],{22:1}],300:[[[[121,1]],[[46,2],[0,1]],[[121,1],[0,2]]],{22:1}],301:[[[[31,1]],[[97,2],[102,3]],[[25,4]],[[97,2],[25,4],[102,3]],[[122,5],[42,5],[30,6]],[[0,5]],[[122,7]],[[52,5]]],{31:1}],302:[[[[25,1]],[[123,2]],[[0,2]]],{25:1}],303:[[[[124,1],[125,1]],[[0,1]]],{25:1,31:1}],304:[[[[11,1]],[[70,2],[126,3]],[[45,4]],[[70,2]],[[0,4]]],{11:1}],305:[[[[29,1]],[[73,2]],[[74,3]],[[127,4]],[[128,5],[0,4]],[[0,5]]],{29:1}],306:[[[[32,1]],[[77,2]],[[128,3],[0,2]],[[0,3]]],{32:1}],307:[[[[129,1],[130,1]],[[0,1]]],{29:1,32:1}],308:[[[[45,1]],[[129,2],[46,3],[0,1]],[[0,2]],[[45,4],[0,3]],[[46,3],[0,4]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],309:[[[[7,1],[131,2]],[[40,2]],[[0,2]]],{6:1,7:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],310:[[[[11,1]],[[70,2],[126,3]],[[77,4]],[[70,2]],[[0,4]]],{11:1}],311:[[[[132,1],[75,1]],[[0,1]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],312:[[[[133,1]],[[134,0],[0,1]]],{6:1,7:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],313:[[[[30,1]],[[52,2],[126,3]],[[0,2]],[[52,2]]],{30:1}],314:[[[[24,1]],[[0,1]]],{24:1}],315:[[[[135,1]],[[44,2],[136,1],[0,1]],[[109,3]],[[0,3]]],{8:1,9:1,14:1,15:1,19:1,22:1,30:1}],316:[[[[12,1]],[[45,2],[137,3],[0,1]],[[46,4],[0,2]],[[45,5]],[[45,2],[0,4]],[[46,6],[0,5]],[[45,7]],[[46,8],[0,7]],[[45,7],[0,8]]],{12:1}],317:[[[[5,1]],[[45,2],[0,1]],[[46,3],[0,2]],[[45,4]],[[46,5],[0,4]],[[45,6]],[[0,6]]],{5:1}],318:[[[[20,1]],[[72,2],[0,1]],[[0,2]]],{20:1}],319:[[[[138,1]],[[139,0],[137,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],320:[[[[140,1]],[[2,2],[141,3]],[[0,2]],[[140,1],[2,2]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,13:1,14:1,15:1,17:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,33:1,34:1,37:1}],321:[[[[70,1]],[[45,2],[0,1]],[[0,2]]],{70:1}],322:[[[[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[149,1],[150,1],[151,1]],[[0,1]]],{5:1,6:1,7:1,8:1,9:1,11:1,12:1,13:1,14:1,15:1,17:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,33:1,34:1,37:1}],323:[[[[1,1],[3,1]],[[0,1]]],{4:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,29:1,30:1,31:1,32:1,33:1,34:1,35:1,36:1,37:1}],324:[[[[45,1],[70,2],[102,3]],[[70,2],[0,1]],[[45,4],[152,5],[0,2]],[[102,6]],[[152,5],[0,4]],[[0,5]],[[102,5]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1,70:1,102:1}],325:[[[[153,1]],[[46,2],[0,1]],[[153,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1,70:1,102:1}],326:[[[[1,1],[2,2]],[[0,1]],[[154,3]],[[110,4]],[[155,1],[110,4]]],{2:1,5:1,6:1,7:1,8:1,9:1,11:1,12:1,13:1,14:1,15:1,17:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:1,28:1,30:1,31:1,33:1,34:1,37:1}],327:[[[[109,1]],[[156,0],[42,0],[157,0],[158,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],328:[[[[75,1],[159,2]],[[32,3],[0,1]],[[0,2]],[[75,4]],[[116,5]],[[45,2]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],329:[[[[45,1]],[[46,2],[0,1]],[[45,1],[0,2]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],330:[[[[45,1]],[[46,0],[0,1]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],331:[[[[45,1]],[[48,2],[46,3],[0,1]],[[0,2]],[[45,4],[0,3]],[[46,3],[0,4]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],332:[[[[77,1]],[[46,2],[0,1]],[[77,3]],[[46,4],[0,3]],[[77,3],[0,4]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],333:[[[[30,1],[102,2],[14,3]],[[52,4],[98,5]],[[22,4]],[[160,6]],[[0,4]],[[52,4]],[[51,4]]],{14:1,30:1,102:1}],334:[[[[16,1]],[[70,2]],[[71,3]],[[161,4],[162,5]],[[70,6]],[[70,7]],[[71,8]],[[71,9]],[[161,4],[116,10],[162,5],[0,8]],[[0,9]],[[70,11]],[[71,12]],[[162,5],[0,12]]],{16:1}],335:[[[[42,1],[118,2],[44,3]],[[22,4]],[[47,5],[46,6],[0,2]],[[22,7]],[[46,8],[0,4]],[[45,9]],[[42,1],[118,2],[44,3],[0,6]],[[0,7]],[[44,3]],[[46,6],[0,9]]],{22:1,30:1,42:1,44:1}],336:[[[[18,1]],[[45,2]],[[70,3]],[[71,4]],[[116,5],[0,4]],[[70,6]],[[71,7]],[[0,7]]],{18:1}],337:[[[[45,1]],[[100,2],[0,1]],[[86,3]],[[0,3]]],{6:1,7:1,8:1,9:1,11:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],338:[[[[36,1]],[[163,2]],[[70,3],[46,1]],[[71,4]],[[0,4]]],{36:1}],339:[[[[164,1]],[[165,0],[0,1]]],{6:1,8:1,9:1,14:1,15:1,19:1,22:1,26:1,30:1,37:1}],340:[[[[27,1]],[[72,2],[0,1]],[[0,2]]],{27:1}],341:[[[[53,1]],[[0,1]]],{27:1}]},states:[[[[1,1],[2,1],[3,2]],[[0,1]],[[2,1]]],[[[38,1]],[[39,0],[0,1]]],[[[40,1]],[[41,0],[0,1]]],[[[42,1],[43,2],[44,3]],[[45,4]],[[46,5],[0,2]],[[45,6]],[[46,7],[0,4]],[[42,1],[43,2],[44,3],[0,5]],[[0,6]],[[43,4],[44,3]]],[[[45,1]],[[47,2],[48,3],[0,1]],[[45,3]],[[0,3]]],[[[49,1]],[[26,0],[37,0],[0,1]]],[[[21,1]],[[45,2]],[[46,3],[0,2]],[[45,4]],[[0,4]]],[[[19,1],[8,2],[9,5],[30,4],[14,3],[15,6],[22,2]],[[19,1],[0,1]],[[0,2]],[[50,7],[51,2]],[[52,2],[53,8],[54,8]],[[55,2],[56,9]],[[57,10]],[[51,2]],[[52,2]],[[55,2]],[[15,2]]],[[[58,1],[59,1],[60,1],[61,1],[62,1],[63,1],[64,1],[65,1],[66,1],[67,1],[68,1],[69,1]],[[0,1]]],[[[33,1]],[[0,1]]],[[[10,1]],[[22,2]],[[70,3],[30,4]],[[71,5]],[[52,6],[72,7]],[[0,5]],[[70,3]],[[52,6]]],[[[29,1]],[[73,2]],[[74,3]],[[75,4]],[[76,5],[0,4]],[[0,5]]],[[[32,1]],[[77,2]],[[76,3],[0,2]],[[0,3]]],[[[78,1],[48,1]],[[0,1]]],[[[79,1],[80,1],[7,2],[81,1],[79,1],[74,1],[82,1],[83,3],[84,1],[85,1]],[[0,1]],[[74,1]],[[7,1],[0,3]]],[[[86,1]],[[87,0],[0,1]]],[[[88,1],[89,1],[90,1],[91,1],[92,1],[93,1],[94,1],[95,1]],[[0,1]]],[[[34,1]],[[0,1]]],[[[13,1]],[[0,1]]],[[[96,1]],[[94,2],[91,2]],[[0,2]]],[[[35,1]],[[97,2]],[[2,4],[30,3]],[[52,5],[98,6]],[[0,4]],[[2,4]],[[52,5]]],[[[99,1]],[[99,1],[0,1]]],[[[23,1]],[[73,2]],[[0,2]]],[[[45,1]],[[70,2],[48,3],[46,4],[0,1]],[[45,5]],[[0,3]],[[45,6],[0,4]],[[48,3],[46,7],[0,5]],[[46,4],[0,6]],[[45,8],[0,7]],[[70,9]],[[45,10]],[[46,7],[0,10]]],[[[97,1]],[[100,2],[0,1]],[[22,3]],[[0,3]]],[[[101,1]],[[46,0],[0,1]]],[[[22,1]],[[102,0],[0,1]]],[[[22,1]],[[0,1]]],[[[72,1]],[[2,1],[103,2]],[[0,2]]],[[[104,1]],[[45,2],[0,1]],[[100,3],[46,3],[0,2]],[[45,4]],[[0,4]]],[[[17,1]],[[86,2]],[[74,3],[0,2]],[[45,4]],[[46,5],[0,4]],[[45,6]],[[0,6]]],[[[105,1]],[[106,0],[0,1]]],[[[72,1]],[[107,2],[47,3],[0,1]],[[72,4],[53,4]],[[72,5],[53,5]],[[0,4]],[[47,3],[0,5]]],[[[86,1]],[[46,2],[0,1]],[[86,1],[0,2]]],[[[37,2],[26,2],[6,2],[108,1]],[[0,1]],[[109,1]]],[[[2,0],[103,1],[110,0]],[[0,1]]],[[[111,1],[112,1],[113,1],[114,1],[115,1]],[[0,1]]],[[[29,1]],[[73,2]],[[74,3]],[[72,4]],[[70,5]],[[71,6]],[[116,7],[0,6]],[[70,8]],[[71,9]],[[0,9]]],[[[30,1],[22,2]],[[117,3]],[[0,2]],[[52,2]]],[[[118,1]],[[46,2],[0,1]],[[118,1],[0,2]]],[[[4,1]],[[22,2]],[[119,3]],[[70,4]],[[71,5]],[[0,5]]],[[[28,1]],[[22,2]],[[46,1],[0,2]]],[[[32,1]],[[45,2]],[[70,3]],[[71,4]],[[116,5],[120,1],[0,4]],[[70,6]],[[71,7]],[[0,7]]],[[[22,1]],[[100,2],[0,1]],[[22,3]],[[0,3]]],[[[121,1]],[[46,2],[0,1]],[[121,1],[0,2]]],[[[31,1]],[[97,2],[102,3]],[[25,4]],[[97,2],[25,4],[102,3]],[[122,5],[42,5],[30,6]],[[0,5]],[[122,7]],[[52,5]]],[[[25,1]],[[123,2]],[[0,2]]],[[[124,1],[125,1]],[[0,1]]],[[[11,1]],[[70,2],[126,3]],[[45,4]],[[70,2]],[[0,4]]],[[[29,1]],[[73,2]],[[74,3]],[[127,4]],[[128,5],[0,4]],[[0,5]]],[[[32,1]],[[77,2]],[[128,3],[0,2]],[[0,3]]],[[[129,1],[130,1]],[[0,1]]],[[[45,1]],[[129,2],[46,3],[0,1]],[[0,2]],[[45,4],[0,3]],[[46,3],[0,4]]],[[[7,1],[131,2]],[[40,2]],[[0,2]]],[[[11,1]],[[70,2],[126,3]],[[77,4]],[[70,2]],[[0,4]]],[[[132,1],[75,1]],[[0,1]]],[[[133,1]],[[134,0],[0,1]]],[[[30,1]],[[52,2],[126,3]],[[0,2]],[[52,2]]],[[[24,1]],[[0,1]]],[[[135,1]],[[44,2],[136,1],[0,1]],[[109,3]],[[0,3]]],[[[12,1]],[[45,2],[137,3],[0,1]],[[46,4],[0,2]],[[45,5]],[[45,2],[0,4]],[[46,6],[0,5]],[[45,7]],[[46,8],[0,7]],[[45,7],[0,8]]],[[[5,1]],[[45,2],[0,1]],[[46,3],[0,2]],[[45,4]],[[46,5],[0,4]],[[45,6]],[[0,6]]],[[[20,1]],[[72,2],[0,1]],[[0,2]]],[[[138,1]],[[139,0],[137,0],[0,1]]],[[[140,1]],[[2,2],[141,3]],[[0,2]],[[140,1],[2,2]]],[[[70,1]],[[45,2],[0,1]],[[0,2]]],[[[142,1],[143,1],[144,1],[145,1],[146,1],[147,1],[148,1],[149,1],[150,1],[151,1]],[[0,1]]],[[[1,1],[3,1]],[[0,1]]],[[[45,1],[70,2],[102,3]],[[70,2],[0,1]],[[45,4],[152,5],[0,2]],[[102,6]],[[152,5],[0,4]],[[0,5]],[[102,5]]],[[[153,1]],[[46,2],[0,1]],[[153,1],[0,2]]],[[[1,1],[2,2]],[[0,1]],[[154,3]],[[110,4]],[[155,1],[110,4]]],[[[109,1]],[[156,0],[42,0],[157,0],[158,0],[0,1]]],[[[75,1],[159,2]],[[32,3],[0,1]],[[0,2]],[[75,4]],[[116,5]],[[45,2]]],[[[45,1]],[[46,2],[0,1]],[[45,1],[0,2]]],[[[45,1]],[[46,0],[0,1]]],[[[45,1]],[[48,2],[46,3],[0,1]],[[0,2]],[[45,4],[0,3]],[[46,3],[0,4]]],[[[77,1]],[[46,2],[0,1]],[[77,3]],[[46,4],[0,3]],[[77,3],[0,4]]],[[[30,1],[102,2],[14,3]],[[52,4],[98,5]],[[22,4]],[[160,6]],[[0,4]],[[52,4]],[[51,4]]],[[[16,1]],[[70,2]],[[71,3]],[[161,4],[162,5]],[[70,6]],[[70,7]],[[71,8]],[[71,9]],[[161,4],[116,10],[162,5],[0,8]],[[0,9]],[[70,11]],[[71,12]],[[162,5],[0,12]]],[[[42,1],[118,2],[44,3]],[[22,4]],[[47,5],[46,6],[0,2]],[[22,7]],[[46,8],[0,4]],[[45,9]],[[42,1],[118,2],[44,3],[0,6]],[[0,7]],[[44,3]],[[46,6],[0,9]]],[[[18,1]],[[45,2]],[[70,3]],[[71,4]],[[116,5],[0,4]],[[70,6]],[[71,7]],[[0,7]]],[[[45,1]],[[100,2],[0,1]],[[86,3]],[[0,3]]],[[[36,1]],[[163,2]],[[70,3],[46,1]],[[71,4]],[[0,4]]],[[[164,1]],[[165,0],[0,1]]],[[[27,1]],[[72,2],[0,1]],[[0,2]]],[[[53,1]],[[0,1]]]],labels:[[0,"EMPTY"],[320,null],[4,null],[272,null],[1,"def"],[1,"raise"],[32,null],[1,"not"],[2,null],[26,null],[1,"class"],[1,"lambda"],[1,"print"],[1,"debugger"],[9,null],[25,null],[1,"try"],[1,"exec"],[1,"while"],[3,null],[1,"return"],[1,"assert"],[1,null],[1,"del"],[1,"pass"],[1,"import"],[15,null],[1,"yield"],[1,"global"],[1,"for"],[7,null],[1,"from"],[1,"if"],[1,"break"],[1,"continue"],[50,null],[1,"with"],[14,null],[319,null],[19,null],[309,null],[1,"and"],[16,null],[260,null],[36,null],[328,null],[12,null],[22,null],[267,null],[327,null],[308,null],[10,null],[8,null],[340,null],[331,null],[27,null],[279,null],[330,null],[46,null],[39,null],[41,null],[47,null],[42,null],[43,null],[37,null],[44,null],[49,null],[45,null],[38,null],[40,null],[11,null],[326,null],[329,null],[289,null],[1,"in"],[312,null],[269,null],[311,null],[268,null],[29,null],[21,null],[28,null],[30,null],[1,"is"],[31,null],[20,null],[287,null],[270,null],[334,null],[298,null],[293,null],[266,null],[338,null],[336,null],[296,null],[275,null],[277,null],[282,null],[259,null],[276,null],[1,"as"],[280,null],[23,null],[0,null],[1,"except"],[339,null],[18,null],[264,null],[315,null],[290,null],[323,null],[265,null],[273,null],[317,null],[318,null],[341,null],[1,"else"],[295,null],[294,null],[313,null],[1,"elif"],[299,null],[300,null],[281,null],[302,null],[301,null],[335,null],[332,null],[307,null],[305,null],[306,null],[271,null],[310,null],[258,null],[1,"or"],[263,null],[333,null],[35,null],[261,null],[34,null],[322,null],[13,null],[292,null],[278,null],[288,null],[314,null],[316,null],[262,null],[286,null],[297,null],[303,null],[274,null],[321,null],[324,null],[5,null],[6,null],[48,null],[17,null],[24,null],[304,null],[325,null],[285,null],[1,"finally"],[337,null],[257,null],[33,null]],keywords:{and:41,as:100,assert:21,"break":33,"class":10,"continue":34,"debugger":13,def:4,del:23,elif:120,"else":116,except:104,exec:17,"finally":162,"for":29,from:31,global:28,"if":32,"import":25,"in":74,is:83,lambda:11,not:7,or:134,pass:24,print:12,raise:5,"return":20,"try":16,"while":18,"with":36,"yield":27},tokens:{0:103,1:22,2:8,3:19,4:2,5:154,6:155,7:30,8:52,9:14,10:51,11:70,12:46,13:141,14:37,15:26,16:42,17:157,18:106,19:39,20:85,21:80,22:47,23:102,24:158,25:15,26:9,27:55,28:81,29:79,30:82,31:84,32:6,33:165,34:139,35:137,36:44,37:64,38:68,39:59,40:69,41:60,42:62,43:63,44:65,45:67,46:58,47:61,48:156,49:66,50:35},start:256},g.FUTURE_PRINT_FUNCTION="print_function",g.FUTURE_UNICODE_LITERALS="unicode_literals",g.FUTURE_DIVISION="division",g.FUTURE_ABSOLUTE_IMPORT="absolute_import",g.FUTURE_WITH_STATEMENT="with_statement",g.FUTURE_NESTED_SCOPES="nested_scopes",g.FUTURE_GENERATORS="generators",g.CO_FUTURE_PRINT_FUNCTION=65536,g.CO_FUTURE_UNICODE_LITERALS=131072,g.CO_FUTURE_DIVISON=8192,g.CO_FUTURE_ABSOLUTE_IMPORT=16384,g.CO_FUTURE_WITH_STATEMENT=32768,g.prototype.setup=function(a){var b,c;a=a||this.grammar.start,c={type:a,value:null,context:null,children:[]},b={dfa:this.grammar.dfas[a],state:0,node:c},this.stack=[b],this.used_names={}},g.prototype.addtoken=function(a,b,c){var d,e,f,g,i,j,k,l,m,n,o,p,q,r=this.classify(a,b,c);a:for(;;){for(q=this.stack[this.stack.length-1],p=q.dfa[0],o=q.dfa[1],n=p[q.state],m=0;m<n.length;++m){if(l=n[m][0],k=n[m][1],j=this.grammar.labels[l][0],i=this.grammar.labels[l][1],r===l){for(bc.asserts.assert(256>j),this.shift(a,b,k,c),g=k;1===p[g].length&&0===p[g][0][0]&&p[g][0][1]===g;){if(this.pop(),0===this.stack.length)return!0;q=this.stack[this.stack.length-1],g=q.state,p=q.dfa[0],o=q.dfa[1]}return!1}if(j>=256&&(f=this.grammar.dfas[j],e=f[1],e.hasOwnProperty(r))){this.push(j,this.grammar.dfas[j],k,c);continue a}}if(!h(n,[0,q.state])){d=c[0][0];var s=this,t=n.map(function(a){var b=a[0],c=s.grammar.labels[b][0];return cc.nameForToken(c)}),u={kind:"DAG_MISS",expected:t,found:cc.nameForToken(a),found_val:b,inside:cc.nameForToken(q.node.type),node:q.node,parent:this.stack.length>1?this.stack[this.stack.length-2].node:void 0},v="expected "+t.join(", ")+" but found "+u.found+" while parsing "+u.inside;throw new cc.builtin.SyntaxError(v,this.filename,d,c,u)}if(this.pop(),0===this.stack.length)throw new cc.builtin.SyntaxError("too much input",this.filename)}},g.prototype.classify=function(a,b,c){var d;if(a===cc.Tokenizer.Tokens.T_NAME&&(this.used_names[b]=!0,d=this.grammar.keywords.hasOwnProperty(b)&&this.grammar.keywords[b],"print"===b&&(this.p_flags&g.CO_FUTURE_PRINT_FUNCTION||cc.python3===!0)&&(d=!1),d))return d;if(d=this.grammar.tokens.hasOwnProperty(a)&&this.grammar.tokens[a],!d){var e={kind:"CLASSIFY",type:a,value:b};throw new cc.builtin.SyntaxError("bad token",this.filename,c[0][0],c,e)}return d},g.prototype.shift=function(a,b,c,d){var e=this.stack[this.stack.length-1].dfa,f=(this.stack[this.stack.length-1].state,this.stack[this.stack.length-1].node),g={type:a,value:b,lineno:d[0][0],col_offset:d[0][1],children:null};g&&f.children.push(g),this.stack[this.stack.length-1]={dfa:e,state:c,node:f}},g.prototype.push=function(a,b,c,d){var e=this.stack[this.stack.length-1].dfa,f=this.stack[this.stack.length-1].node,g={type:a,value:null,lineno:d[0][0],col_offset:d[0][1],children:[]};this.stack[this.stack.length-1]={dfa:e,state:c,node:f},this.stack.push({dfa:b,state:0,node:g})},g.prototype.pop=function(){var a,b=this.stack.pop(),c=b.node;c&&(0!==this.stack.length?(a=this.stack[this.stack.length-1].node,a.children.push(c)):(this.rootnode=c,this.rootnode.used_names=this.used_names))},cc.parse=function(a,b){var c,d,e,f=i(a);for("\n"!==b.substr(b.length-1,1)&&(b+="\n"),e=b.split("\n"),c=0;c<e.length;++c)d=f(e[c]+(c===e.length-1?"":"\n"));return{cst:d,flags:f.p_flags}},cc.parseTreeDump=function(a,b){var c,d;if(b=b||"",d="",d+=b,a.type>=256)for(d+=cc.ParseTables.number2symbol[a.type]+"\n",c=0;c<a.children.length;++c)d+=cc.parseTreeDump(a.children[c],b+" ");else d+=cc.Tokenizer.tokenNames[a.type]+": "+new cc.builtin.str(a.value).$r().v+"\n";return d},bc.exportSymbol("Sk.parse",cc.parse),bc.exportSymbol("Sk.parseTreeDump",cc.parseTreeDump),R.prototype._astname="Module",R.prototype._fields=["body",function(a){return a.body}],S.prototype._astname="Interactive",S.prototype._fields=["body",function(a){return a.body}],T.prototype._astname="Expression",T.prototype._fields=["body",function(a){return a.body}],U.prototype._astname="Suite",U.prototype._fields=["body",function(a){return a.body}],V.prototype._astname="FunctionDef",V.prototype._fields=["name",function(a){return a.name},"args",function(a){return a.args},"body",function(a){return a.body},"decorator_list",function(a){return a.decorator_list}],W.prototype._astname="ClassDef",W.prototype._fields=["name",function(a){return a.name},"bases",function(a){return a.bases},"body",function(a){return a.body},"decorator_list",function(a){return a.decorator_list}],X.prototype._astname="Return",X.prototype._fields=["value",function(a){return a.value}],Y.prototype._astname="Delete",Y.prototype._fields=["targets",function(a){return a.targets}],Z.prototype._astname="Assign",Z.prototype._fields=["targets",function(a){return a.targets},"value",function(a){return a.value}],$.prototype._astname="AugAssign",$.prototype._fields=["target",function(a){return a.target},"op",function(a){return a.op},"value",function(a){return a.value}],_.prototype._astname="Print",_.prototype._fields=["dest",function(a){return a.dest},"values",function(a){return a.values},"nl",function(a){return a.nl}],aa.prototype._astname="For",aa.prototype._fields=["target",function(a){return a.target},"iter",function(a){return a.iter},"body",function(a){return a.body},"orelse",function(a){return a.orelse}],ba.prototype._astname="While",ba.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}],ca.prototype._astname="If",ca.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}],da.prototype._astname="With",da.prototype._fields=["context_expr",function(a){
return a.context_expr},"optional_vars",function(a){return a.optional_vars},"body",function(a){return a.body}],ea.prototype._astname="Raise",ea.prototype._fields=["type",function(a){return a.type},"inst",function(a){return a.inst},"tback",function(a){return a.tback}],fa.prototype._astname="TryExcept",fa.prototype._fields=["body",function(a){return a.body},"handlers",function(a){return a.handlers},"orelse",function(a){return a.orelse}],ga.prototype._astname="TryFinally",ga.prototype._fields=["body",function(a){return a.body},"finalbody",function(a){return a.finalbody}],ha.prototype._astname="Assert",ha.prototype._fields=["test",function(a){return a.test},"msg",function(a){return a.msg}],ia.prototype._astname="Import",ia.prototype._fields=["names",function(a){return a.names}],ja.prototype._astname="ImportFrom",ja.prototype._fields=["module",function(a){return a.module},"names",function(a){return a.names},"level",function(a){return a.level}],ka.prototype._astname="Exec",ka.prototype._fields=["body",function(a){return a.body},"globals",function(a){return a.globals},"locals",function(a){return a.locals}],la.prototype._astname="Global",la.prototype._fields=["names",function(a){return a.names}],ma.prototype._astname="Expr",ma.prototype._fields=["value",function(a){return a.value}],na.prototype._astname="Pass",na.prototype._fields=[],oa.prototype._astname="Break",oa.prototype._fields=[],pa.prototype._astname="Continue",pa.prototype._fields=[],qa.prototype._astname="Debugger",qa.prototype._fields=[],ra.prototype._astname="BoolOp",ra.prototype._fields=["op",function(a){return a.op},"values",function(a){return a.values}],sa.prototype._astname="BinOp",sa.prototype._fields=["left",function(a){return a.left},"op",function(a){return a.op},"right",function(a){return a.right}],ta.prototype._astname="UnaryOp",ta.prototype._fields=["op",function(a){return a.op},"operand",function(a){return a.operand}],ua.prototype._astname="Lambda",ua.prototype._fields=["args",function(a){return a.args},"body",function(a){return a.body}],va.prototype._astname="IfExp",va.prototype._fields=["test",function(a){return a.test},"body",function(a){return a.body},"orelse",function(a){return a.orelse}],wa.prototype._astname="Dict",wa.prototype._fields=["keys",function(a){return a.keys},"values",function(a){return a.values}],xa.prototype._astname="Set",xa.prototype._fields=["elts",function(a){return a.elts}],ya.prototype._astname="ListComp",ya.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}],za.prototype._astname="SetComp",za.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}],Aa.prototype._astname="DictComp",Aa.prototype._fields=["key",function(a){return a.key},"value",function(a){return a.value},"generators",function(a){return a.generators}],Ba.prototype._astname="GeneratorExp",Ba.prototype._fields=["elt",function(a){return a.elt},"generators",function(a){return a.generators}],Ca.prototype._astname="Yield",Ca.prototype._fields=["value",function(a){return a.value}],Da.prototype._astname="Compare",Da.prototype._fields=["left",function(a){return a.left},"ops",function(a){return a.ops},"comparators",function(a){return a.comparators}],Ea.prototype._astname="Call",Ea.prototype._fields=["func",function(a){return a.func},"args",function(a){return a.args},"keywords",function(a){return a.keywords},"starargs",function(a){return a.starargs},"kwargs",function(a){return a.kwargs}],Fa.prototype._astname="Repr",Fa.prototype._fields=["value",function(a){return a.value}],Ga.prototype._astname="Num",Ga.prototype._fields=["n",function(a){return a.n}],Ha.prototype._astname="Str",Ha.prototype._fields=["s",function(a){return a.s}],Ia.prototype._astname="Attribute",Ia.prototype._fields=["value",function(a){return a.value},"attr",function(a){return a.attr},"ctx",function(a){return a.ctx}],Ja.prototype._astname="Subscript",Ja.prototype._fields=["value",function(a){return a.value},"slice",function(a){return a.slice},"ctx",function(a){return a.ctx}],Ka.prototype._astname="Name",Ka.prototype._fields=["id",function(a){return a.id},"ctx",function(a){return a.ctx}],La.prototype._astname="List",La.prototype._fields=["elts",function(a){return a.elts},"ctx",function(a){return a.ctx}],Ma.prototype._astname="Tuple",Ma.prototype._fields=["elts",function(a){return a.elts},"ctx",function(a){return a.ctx}],j.prototype._astname="Load",j.prototype._isenum=!0,k.prototype._astname="Store",k.prototype._isenum=!0,l.prototype._astname="Del",l.prototype._isenum=!0,m.prototype._astname="AugLoad",m.prototype._isenum=!0,n.prototype._astname="AugStore",n.prototype._isenum=!0,o.prototype._astname="Param",o.prototype._isenum=!0,Na.prototype._astname="Ellipsis",Na.prototype._fields=[],Oa.prototype._astname="Slice",Oa.prototype._fields=["lower",function(a){return a.lower},"upper",function(a){return a.upper},"step",function(a){return a.step}],Pa.prototype._astname="ExtSlice",Pa.prototype._fields=["dims",function(a){return a.dims}],Qa.prototype._astname="Index",Qa.prototype._fields=["value",function(a){return a.value}],p.prototype._astname="And",p.prototype._isenum=!0,q.prototype._astname="Or",q.prototype._isenum=!0,r.prototype._astname="Add",r.prototype._isenum=!0,s.prototype._astname="Sub",s.prototype._isenum=!0,t.prototype._astname="Mult",t.prototype._isenum=!0,u.prototype._astname="Div",u.prototype._isenum=!0,v.prototype._astname="Mod",v.prototype._isenum=!0,w.prototype._astname="Pow",w.prototype._isenum=!0,x.prototype._astname="LShift",x.prototype._isenum=!0,y.prototype._astname="RShift",y.prototype._isenum=!0,z.prototype._astname="BitOr",z.prototype._isenum=!0,A.prototype._astname="BitXor",A.prototype._isenum=!0,B.prototype._astname="BitAnd",B.prototype._isenum=!0,C.prototype._astname="FloorDiv",C.prototype._isenum=!0,D.prototype._astname="Invert",D.prototype._isenum=!0,E.prototype._astname="Not",E.prototype._isenum=!0,F.prototype._astname="UAdd",F.prototype._isenum=!0,G.prototype._astname="USub",G.prototype._isenum=!0,H.prototype._astname="Eq",H.prototype._isenum=!0,I.prototype._astname="NotEq",I.prototype._isenum=!0,J.prototype._astname="Lt",J.prototype._isenum=!0,K.prototype._astname="LtE",K.prototype._isenum=!0,L.prototype._astname="Gt",L.prototype._isenum=!0,M.prototype._astname="GtE",M.prototype._isenum=!0,N.prototype._astname="Is",N.prototype._isenum=!0,O.prototype._astname="IsNot",O.prototype._isenum=!0,P.prototype._astname="In",P.prototype._isenum=!0,Q.prototype._astname="NotIn",Q.prototype._isenum=!0,Ra.prototype._astname="comprehension",Ra.prototype._fields=["target",function(a){return a.target},"iter",function(a){return a.iter},"ifs",function(a){return a.ifs}],Sa.prototype._astname="ExceptHandler",Sa.prototype._fields=["type",function(a){return a.type},"name",function(a){return a.name},"body",function(a){return a.body}],Ta.prototype._astname="arguments",Ta.prototype._fields=["args",function(a){return a.args},"vararg",function(a){return a.vararg},"kwarg",function(a){return a.kwarg},"defaults",function(a){return a.defaults}],Ua.prototype._astname="keyword",Ua.prototype._fields=["arg",function(a){return a.arg},"value",function(a){return a.value}],Va.prototype._astname="alias",Va.prototype._fields=["name",function(a){return a.name},"asname",function(a){return a.asname}];var Gc=cc.ParseTables.sym,Hc=cc.Tokenizer.Tokens,Ic=0,Jc=1,Kc={};!function(){Kc[Hc.T_VBAR]=z,Kc[Hc.T_CIRCUMFLEX]=A,Kc[Hc.T_AMPER]=B,Kc[Hc.T_LEFTSHIFT]=x,Kc[Hc.T_RIGHTSHIFT]=y,Kc[Hc.T_PLUS]=r,Kc[Hc.T_MINUS]=s,Kc[Hc.T_STAR]=t,Kc[Hc.T_SLASH]=u,Kc[Hc.T_DOUBLESLASH]=C,Kc[Hc.T_PERCENT]=v}(),cc.astFromParse=function(a,b,c){var d,e,f,g,h=new Wa("utf-8",b,c),i=[],j=0;switch(a.type){case Gc.file_input:for(g=0;g<Xa(a)-1;++g)if(f=Ya(a,g),a.type!==Hc.T_NEWLINE)if(Za(f,Gc.stmt),e=_a(f),1===e)i[j++]=_b(h,f);else for(f=Ya(f,0),Za(f,Gc.simple_stmt),d=0;e>d;++d)i[j++]=_b(h,Ya(f,2*d));return new R(i);case Gc.eval_input:bc.asserts.fail("todo;");case Gc.single_input:bc.asserts.fail("todo;");default:bc.asserts.fail("todo;")}},cc.astDump=function(a){var b=function(a){var b,c="";for(b=0;a>b;++b)c+=" ";return c},c=function(a,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;if(null===a)return d+"None";if(a.prototype&&void 0!==a.prototype._astname&&a.prototype._isenum)return d+a.prototype._astname+"()";if(void 0!==a._astname){for(q=b(a._astname.length+1),p=[],o=0;o<a._fields.length;o+=2)n=a._fields[o],m=a._fields[o+1](a),l=b(n.length+1),p.push([n,c(m,d+q+l)]);for(k=[],o=0;o<p.length;++o)j=p[o],k.push(j[0]+"="+j[1].replace(/^\s+/,""));return i=k.join(",\n"+d+q),d+a._astname+"("+i+")"}if(bc.isArrayLike(a)){for(h=[],o=0;o<a.length;++o)g=a[o],h.push(c(g,d+" "));return f=h.join(",\n"),d+"["+f.replace(/^\s+/,"")+"]"}return e=a===!0?"True":a===!1?"False":a instanceof cc.builtin.lng?a.tp$str().v:a instanceof cc.builtin.str?a.$r().v:""+a,d+e};return c(a,"")},bc.exportSymbol("Sk.astFromParse",cc.astFromParse),bc.exportSymbol("Sk.astDump",cc.astDump),Xb=ac(Xb),db=ac(db),fb=ac(fb),gb=ac(gb),ib=ac(ib),jb=ac(jb),kb=ac(kb),lb=ac(lb),mb=ac(mb),nb=ac(nb),ob=ac(ob),pb=ac(pb),qb=ac(qb),rb=ac(rb),sb=ac(sb),tb=ac(tb),vb=ac(vb),wb=ac(wb),xb=ac(xb),yb=ac(yb),zb=ac(zb),Bb=ac(Bb),Cb=ac(Cb),Db=ac(Db),Eb=ac(Eb),Fb=ac(Fb),Gb=ac(Gb),Hb=ac(Hb),Ib=ac(Ib),Jb=ac(Jb),Kb=ac(Kb),Lb=ac(Lb),Mb=ac(Mb),Nb=ac(Nb),Ob=ac(Ob),Pb=ac(Pb),Qb=ac(Qb),Rb=ac(Rb),Sb=ac(Sb),Zb=ac(Zb),cc.astFromParse=ac(cc.astFromParse,1),cc.nameForToken=function(a){if("string"==typeof a)return a;for(var b in cc.Tokenizer.Tokens)if(cc.Tokenizer.Tokens[b]==a)return b;return a in cc.ParseTables.number2symbol?cc.ParseTables.number2symbol[a]:"???:"+a},cc.Parser=g,cc.builtin.str.prototype.valueOf=function(){return this.v},cc.builtin.str.prototype.toString=function(){return this.v},cc.builtin.SyntaxError=function(a,b,c,d,e){var f=new SyntaxError(a,b,c);return f.context=d,f.extra=e,f.line=c,f},cc.builtin.IndentationError=function(a,b,c,d,e){var f=new SyntaxError("Indentation Error: "+a,b,c);return f.context=[[c,d],[c,d]],f.extra={},f.line=c,f},a.exports=cc}).call(b,function(){return this}())},function(a,b){"use strict";function c(a){if(a.prototype._astname)return a.prototype._astname;throw new Error("Coudlnt decode operator name for: "+(a.name||a.toString()))}function d(a){throw console.log(new Error("ABORT:"+a).stack),new Error(a)}function e(a){return/Expression$/.test(a.type)}function f(a){return"__temp$"+a+"$"+ca++}function g(a){var b=a;ba(a)||(b=[b]);for(var c=0;c<b.length;++c){var d=b[c];e(d)&&(b[c]={type:"ExpressionStatement",expression:d})}return ba(a)?a:b[0]}function h(a){return{type:"Identifier",name:a.valueOf()}}function i(a,b){return{type:"MemberExpression",object:a,property:b,computed:!1}}function j(a){return"object"==typeof a&&(a=a.valueOf()),"number"==typeof a&&1/a!==1/Math.abs(a)?{type:"UnaryExpression",argument:j(-a),operator:"-"}:{type:"Literal",value:a,raw:JSON.stringify(a)}}function k(a,b,c){return{type:"BinaryExpression",left:a,right:c,operator:b}}function l(a,b,c){return{type:"LogicalExpression",left:a,right:c,operator:b}}function m(a,b,c){return{type:"ConditionalExpression",test:a,consequent:b,alternate:c}}function n(a,b){return{type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:a,init:b?b:void 0}]}}function o(a,b){var c=p(a,b);return a.range&&(c.range=[a.range[0],a.range[1]]),a.loc&&(c.loc=a.loc),c.str=a.str,c}function p(a,b){if(b.locals||(b.locals=Object.create(null)),!a)throw console.log("WAT!",(new Error).stack),new Error("What?");if(ba(a)){for(var c=[],d=0;d<a.length;++d){var e=o(a[d],b);ba(e)?c.push.apply(c,e):c.push(e)}return c}switch(a._astname){case"Attribute":return s(a,b);case"Assign":return u(a,b);case"AugAssign":return t(a,b);case"BinOp":return w(a,b);case"BoolOp":return x(a,b);case"Break":return y(a,b);case"Call":return z(a,b);case"ClassDef":return A(a,b);case"Continue":return B(a,b);case"Compare":return D(a,b);case"Dict":return F(a,b);case"Delete":return E(a,b);case"Expr":return G(a,b);case"For":return K(a,b);case"FunctionDef":return M(a,b);case"GeneratorExp":return R(a,b);case"Global":return N(a,b);case"If":return O(a,b);case"Import":return q();case"Lambda":return P(a,b);case"List":return Q(a,b);case"ListComp":return R(a,b);case"Module":return S(a,b);case"Name":return T(a,b);case"Print":return V(a,b);case"Return":return W(a,b);case"Str":return X(a,b);case"Subscript":return Z(a,b);case"Tuple":return Y(a,b);case"Num":return U(a,b);case"Pass":return $(a,b);case"UnaryOp":return _(a,b);case"While":return aa(a,b);default:throw console.log("Dont know how to transform: "+a._astname),console.log(JSON.stringify(a,null," ")),new Error("Dont know how to transform: "+a._astname)}}function q(){return[]}function r(a){var b=Array.isArray(a)?a:a.split(/\./g);if(1===b.length)return h(a);var c=b.pop();return i(r(b),h(c))}function s(a,b){var c=a.attr;return c=c._astname?o(c,b):{type:"Identifier",name:c.valueOf()},i(o(a.value,b),c)}function t(a,b){var d=o(a.value,b),e=o(a.target,b),i=f("left"),j=c(a.op);return[n(h(i),e),g({type:"AssignmentExpression",operator:"=",left:e,right:v(e,j,d)})]}function u(a,b){for(var c=[],d=0;d<a.targets.length;++d){var e=a.targets[d];b.writeTarget&&(e=i(b.writeTarget,o(e,b))),c.push.apply(c,I(e,o(a.value,b),b))}return 1==c.length?c[0]:{type:"BlockStatement",body:c}}function v(a,b,c){if("FloorDiv"===b)return{type:"CallExpression",callee:r("Math.floor"),arguments:[{type:"BinaryExpression",left:a,right:c,operator:"/"}]};var e={Add:"__pythonRuntime.ops.add",Mult:"__pythonRuntime.ops.multiply",Pow:"Math.pow"};if(b in e){var f={type:"CallExpression",callee:r(e[b]),arguments:[a,c]};return f}var g={Add:"+",Sub:"-",Mod:"%",Div:"/",BitAnd:"&",BitOr:"|",BitXor:"^",LShift:"<<",RShift:">>"};return b in g||d("Unknown binary operator: "+b),k(a,g[b],c)}function w(a,b){var d=o(a.left,b),e=o(a.right,b);return v(d,c(a.op),e)}function x(a,b){for(var e=new Array(a.values.length),f=0;f<a.values.length;++f)e[f]=o(a.values[f],b);var g=c(a.op),h={And:"&&",Or:"||"};g in h||d("Unknown bool opeartor: "+g);for(var i=h[g],j=e.pop();e.length>0;)j=l(e.pop(),i,j);return j}function y(a,b){return{type:"BreakStatement"}}function z(a,b){if("Name"==a.func._astname)switch(a.func.id.v){case"len":return{type:"MemberExpression",object:o(a.args[0],b),property:{type:"Identifier",name:"length"}};case"all":case"ord":case"sum":case"any":case"str":case"chr":case"ascii":case"divmod":case"range":case"enumerate":case"round":case"filter":case"abs":case"float":case"int":case"hex":case"tuple":case"map":case"bool":case"max":case"sorted":case"min":case"list":case"oct":case"pow":case"reversed":case"repr":return{type:"CallExpression",callee:r("__pythonRuntime.functions."+a.func.id.v),arguments:o(a.args,b)};case"dict":for(var c=[],d=0;d<a.keywords.length;++d)c.push({type:"ArrayExpression",elements:[j(a.keywords[d].arg.v),o(a.keywords[d].value,b)]});return{type:"NewExpression",callee:r("__pythonRuntime.objects.dict"),arguments:c}}var c=o(a.args,b);if(a.keywords.length>0){for(var e={type:"ObjectExpression",properties:[{type:"Property",key:h("__kwp"),value:j(!0)}]},d=0;d<a.keywords.length;++d){var f=a.keywords[d];e.properties.push({type:"Property",key:h(f.arg.v),value:o(f.value,b)})}var g={type:"CallExpression",callee:r("__pythonRuntime.utils.createParamsObj"),arguments:[e]};c.push(g)}return{type:"CallExpression",callee:o(a.func,b),arguments:c}}function A(a,b){var c=[],d=i(h(a.name),h("prototype")),e={writeTarget:d,inClass:!0,locals:Object.create(null)};a.bases.length>1&&alert("Multiple base classes not supported.");var f=a.bases.length>0?o(a.bases[0],b):void 0,l=[];return l.push({type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h("that"),init:{type:"ThisExpression"}}]}),l.push({type:"IfStatement",test:{type:"UnaryExpression",argument:k(h("that"),"instanceof",h(a.name)),operator:"!"},consequent:g({type:"AssignmentExpression",left:h("that"),right:{type:"CallExpression",callee:r("Object.create"),arguments:[d]},operator:"="})}),l.push({type:"IfStatement",test:{type:"CallExpression",callee:i(d,h("hasOwnProperty")),arguments:[j("__init__")]},consequent:g({type:"CallExpression",callee:i(i(d,h("__init__")),h("apply")),arguments:[h("that"),h("arguments")]})}),f&&l.push(g({type:"CallExpression",callee:{type:"MemberExpression",object:f,property:h("apply"),computed:!1},arguments:[h("that"),h("arguments")]})),l.push({type:"ReturnStatement",argument:h("that")}),c.push({type:"FunctionDeclaration",id:h(a.name),params:[],body:{type:"BlockStatement",body:l}}),f&&c.push({type:"AssignmentExpression",left:d,right:{type:"CallExpression",callee:r("Object.create"),arguments:[i(f,h("prototype"))]},operator:"="}),c=c.concat(o(a.body,e)),c.push({type:"ReturnStatement",argument:h(a.name)}),{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(a.name),init:{type:"CallExpression",callee:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:g(c)}},arguments:[]}}],kind:b.varType||"var"}}function B(a,b){return{type:"ContinueStatement"}}function C(a,b,e){var f={In_:"in",In:"in",NotIn:"in"},g=c(b);if(g in f){var h={type:"CallExpression",callee:r("__pythonRuntime.ops."+f[g]),arguments:[a,e]};return"NotIn"==g?{type:"UnaryExpression",argument:h,operator:"!"}:h}var i={Eq:"===",NotEq:"!==",LtE:"<=",Lt:"<",GtE:">=",Gt:">",Is:"===",IsNot:"!=="};return g in i||d("Unsuported Compare operator: "+g),k(a,i[g],e)}function D(a,b){for(var c,d=o(a.left,b),e=0;e<a.comparators.length;++e){var f=o(a.comparators[e],b),g=C(d,a.ops[e],f);c=c?k(c,"&&",g):g,d=f}return c}function E(a,b){for(var c=[],d=0;d<a.targets.length;++d){var e=a.targets[d],f=o(e,b);c.push({type:"AssignmentExpression",operator:"=",left:f,right:{type:"UnaryExpression",argument:j(0),operator:"void",prefix:!0}})}return g({type:"SequenceExpression",expressions:c})}function F(a,b){for(var c=[],d=0;d<a.keys.length;++d)c.push({type:"ArrayExpression",elements:[o(a.keys[d],b),o(a.values[d],b)]});return{type:"NewExpression",callee:r("__pythonRuntime.objects.dict"),arguments:c}}function G(a,b){return{type:"ExpressionStatement",expression:o(a.value,b)}}function H(a,b,c){var d,e=a._astname?o(a,c):a;return"Identifier"===e.type&&(d=e.name),d&&c&&c.locals&&!c.locals[d]?(c.locals[d]=!0,{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:e,init:b}],kind:c.varType||"var"}):{type:"ExpressionStatement",expression:{type:"AssignmentExpression",operator:"=",left:e,right:b}}}function I(a,b,c){if("Tuple"===a._astname){var d=[],e=f("right");d.push({type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(e),init:b}]});for(var g=0;g<a.elts.length;++g)d.push.apply(d,I(a.elts[g],{type:"MemberExpression",object:h(e),property:j(g),computed:!0},c));return d}return[H(a,b,c)]}function J(a,b,c,d,e,f){e=I(d,{type:"MemberExpression",object:b,property:a,computed:!0},f).concat(e);var g=m({type:"CallExpression",callee:r("Array.isArray"),arguments:[c]},c,{type:"CallExpression",callee:r("Object.keys"),arguments:[c]});return{type:"ForStatement",init:{type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:a,init:j(0)},{type:"VariableDeclarator",id:b,init:g}],kind:f.varType},test:k(a,"<",{type:"MemberExpression",object:b,property:{type:"Identifier",name:"length"}}),update:{type:"UpdateExpression",operator:"++",prefix:!0,argument:a},body:{type:"BlockStatement",body:e}}}function K(a,b){var c=f("idx"),e=h(c),i=f("target"),j={type:"Identifier",name:i},k=o(a.iter,b),l=g(o(a.body,b));return a.orelse&&a.orelse.length>0&&d("else: for-else statement unsupported."),J(e,j,k,a.target,l,b)}function L(a,b){var c=a.args.args.slice(0);b.inClass&&c.shift();var d=c.length>0||a.args.vararg||a.args.kwarg,e={locals:Object.create(null),varType:b.varType},i=g(o(a.body,e)),n=[];if(b.inClass&&n.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h("self"),init:{type:"ThisExpression"}}],kind:"var"}),d){var p=f("hasParams"),q=f("param0"),s=f("realArgCount"),t=r("arguments.length"),u={type:"MemberExpression",object:h("arguments"),property:k(t,"-",j(1)),computed:!0},v={type:"MemberExpression",object:u,property:h("keywords"),computed:!1};n.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(p),init:l(k(t,">",j(0)),"&&",l(u,"&&",v))}],kind:"var"});var w=[];w.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(q),init:m(h(p),v,{type:"ObjectExpression",properties:[]})},{type:"VariableDeclarator",id:h(s),init:k(t,"-",m(h(p),j(1),j(0)))}],kind:"var"});for(var x=0;x<c.length;++x){var y=a.args.args[x],z=x-(a.args.args.length-a.args.defaults.length),A=z>=0?o(a.args.defaults[z],b):h("undefined");w.push({type:"IfStatement",test:k(h(s),"<",j(x+1)),consequent:g({type:"AssignmentExpression",operator:"=",left:h(y.id),right:m(k(j(y.id),"in",h(q)),{type:"MemberExpression",object:h(q),property:h(y.id),computed:!1},A)})})}if(a.args.vararg&&w.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(a.args.vararg),init:{type:"CallExpression",callee:r("Array.prototype.slice.call"),arguments:[h("arguments"),j(a.args.args.length),d?h(s):void 0]}}],kind:"var"}),a.args.kwarg){for(var x=0;x<a.args.args.length;++x)w.push(g({type:"UnaryExpression",operator:"delete",argument:{type:"MemberExpression",object:h(q),property:h(a.args.args[x].id),computed:!1}}));w.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(a.args.kwarg),init:h(q)}],kind:"var"})}n=n.concat(w)}i=n.concat(i);var B=o(c,b);return{premble:n,body:i,params:B}}function M(a,b){var c=L(a,b);return b.writeTarget?g({type:"AssignmentExpression",left:{type:"MemberExpression",object:b.writeTarget,property:h(a.name)},right:{type:"FunctionExpression",name:h(a.name),params:c.params,body:{type:"BlockStatement",body:c.body}},operator:"="}):{type:"FunctionDeclaration",id:{type:"Identifier",name:a.name.v},params:c.params,body:{type:"BlockStatement",body:c.body}}}function N(a,b){for(var c=0;c<a.names.length;++c)b.locals[a.names[c].v]=!0;return[]}function O(a,b){var c=g(o(a.body,b));return{type:"IfStatement",test:o(a.test,b),consequent:{type:"BlockStatement",body:c},alternate:a.orelse&&a.orelse.length>0?{type:"BlockStatement",body:g(o(a.orelse,b))}:void 0}}function P(a,b){var c=L(a,b),d=c.body[c.body.length-1];return c.body[c.body.length-1]={type:"ReturnStatement",argument:d.expression},{type:"FunctionExpression",params:c.params,body:{type:"BlockStatement",body:c.body}}}function Q(a,b){var c={type:"CallExpression",callee:r("__pythonRuntime.objects.list"),arguments:o(a.elts,b)};return c}function R(a,b){var c=[],d=f("result");c.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:h(d),init:{type:"NewExpression",callee:r("__pythonRuntime.objects.list"),arguments:[]}}],kind:"var"});var e=[];e.push(g({type:"CallExpression",callee:{type:"MemberExpression",object:h(d),property:h("push"),computed:!1},arguments:[o(a.elt,b)]}));for(var i=a.generators[0],j=a.generators.length-1;j>=0;--j){for(var k=f("idx"),l=f("list"+j),m=f("iter"),i=a.generators[j],n=0;n<i.ifs.length;++n)e.unshift({type:"IfStatement",test:{type:"UnaryExpression",argument:o(i.ifs[n],b),operator:"!"},consequent:{type:"ContinueStatement"}});e=[{type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(l),init:o(i.iter,b)}]},J(h(k),h(m),h(l),i.target,e,b)]}c.push.apply(c,e),c.push({type:"ReturnStatement",argument:h(d)});var p={type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:c}};return{type:"CallExpression",callee:p,arguments:[]}}function S(a,b){return{type:"Program",body:g(o(a.body,b))}}function T(a,b){return"True"===a.id.v?{type:"Literal",value:!0,raw:"true"}:"False"===a.id.v?{type:"Literal",value:!1,raw:"false"}:"None"===a.id.v?{type:"Literal",value:null,raw:"null"}:"random"===a.id.v?r("__pythonRuntime.imports.random"):h(a.id)}function U(a,b){return j(a.n)}function V(a,b){return{type:"CallExpression",callee:r("console.log"),arguments:o(a.values,b)}}function W(a,b){return{type:"ReturnStatement",argument:a.value?o(a.value,b):void 0}}function X(a,b){return j(a.s.valueOf())}function Y(a,b){var c={type:"CallExpression",callee:r("__pythonRuntime.objects.tuple"),arguments:o(a.elts,b)};return c}function Z(a,b){var c=o(a.value,b);if(a.slice.value){var d=o(a.slice.value,b);return d={type:"CallExpression",callee:r("__pythonRuntime.ops.subscriptIndex"),arguments:[c,d]},{type:"MemberExpression",computed:!0,object:c,property:d}}return{type:"CallExpression",callee:r("__pythonRuntime.internal.slice"),arguments:[c,a.slice.lower?o(a.slice.lower,b):h("undefined"),a.slice.upper?o(a.slice.upper,b):h("undefined"),a.slice.step?o(a.slice.step,b):h("undefined")]}}function $(a,b){return{type:"EmptyStatement"}}function _(a,b){var e=o(a.operand,b),f={Add:"add",Mult:"multiply"},g=c(a.op);if(g in f){var h={type:"CallExpression",callee:r("__pythonRuntime.ops."+f[g]),arguments:[e]};return h}var i={Not:"!",USub:"-",Invert:"~"};return g in i||d("Unknown unary operator: "+g),{type:"UnaryExpression",argument:e,operator:i[g]}}function aa(a,b){return a.orelse&&a.orelse.length>0&&d("else: statement for while unsupported."),{type:"WhileStatement",test:o(a.test,b),body:{type:"BlockStatement",body:g(o(a.body,b))}}}var ba=Array.isArray,ca=0;a.exports=o},function(a,b,c){"use strict";function d(a,b,c){var d;a.context&&a.context.length>0&&(d=a.context[0]),a.extra&&a.extra.node&&(d||(d=[a.extra.node.loc.start.line,a.extra.node.loc.start.column])),d&&e(a,d[0],d[1]),b.friendlyErrors&&a.extra&&(a.message=h(a,c))}function e(a,b,c){a.loc={line:b,column:c},a.line=b,a.column=c}function f(a){switch(a){case"if_stmt":return"if statement";case"while_stmt":return"while statement";case"funcdef":return"function";default:return"?"+a+"?"}}function g(a){var b=i.nameForToken(a.type);return"suite"===b?g(a.children[0]):f(b)}function h(a,b){if("DAG_MISS"==a.extra.kind){if(-1!==a.extra.expected.indexOf("T_COLON")){var c=(a.context&&a.context[2]?a.context[2]:a.extra.found_val).replace(/\s+$/,""),d=a.extra.node.children[a.extra.node.children.length-1];if("else"===d.value&&(c="else"),"T_SEMI"==a.extra.found)return"Replace the `;` at the end of `"+c+"` with a `:`";if("T_NEWLINE"==a.extra.found)return"Need a `:` on the end of the line following `"+c+"`.";if("T_NAME"==a.extra.found)return"Need a `:` after `"+c+"`.";if("T_EQUAL"==a.extra.found)return"Can't assign to a variable within the condition of an "+f(a.extra.inside)+". Did you mean to use `==` instead of `=`?"}if(-1!==a.extra.expected.indexOf("T_DEDENT"))return"else"===a.extra.found_val.toLowerCase()?"`else` needs to line up with its `if`.":"Indentation error.";if(-1!==a.extra.expected.indexOf("T_INDENT")){var d=a.extra.parent||a.extra.node,h=g(d);if("if statement"===h)for(var j=0;j<d.children.length;++j)-1!==["if","elif","else"].indexOf(d.children[j].value)&&(h=d.children[j].value+" statement");return"else"===d.value&&(h="else statement"),"Empty "+h+". Put 4 spaces in front of statements inside the "+h+"."}if("T_NAME"===a.extra.found)switch(a.extra.found_val){case"else":case"elif":return"`"+a.extra.found_val+"` must be paired with an `if`";case"elseif":return"`elseif` should be shortened to `elif`"}if("T_AMPER"===a.extra.found&&"and_expr"==a.extra.inside)return"Python uses the word `and` instead of `&&` for boolean AND expressions.";if("trailer"===a.extra.inside&&0===a.extra.expected.indexOf("T_RPAR")){if(a.line>a.extra.node.lineno){e(a,a.extra.node.lineno,a.extra.node.col_offset);var k=a.extra.node.loc;return a.context=[[k.start.line,k.start.column],[k.end.line,k.end.column]],"Unclosed `(` in function arguments."+a.extra.node.lineno}return"Function calls paramaters must be seperated by `,`s"}if("T_INDENT"===a.extra.found&&-1!==a.extra.expected.indexOf("stmt"))return"Too much indentation at the beginning of this line.";if(0===a.extra.expected.indexOf("subscriptlist"))return"Malformed subscript";if(-1!==a.extra.expected.indexOf("T_NEWLINE")){var l=a.extra.node;if(a.extra.node.children[0]){var l=a.extra.node.children[0],m=i.nameForToken(l.type);if("small_stmt"==m){for(;l.children&&1==l.children.length;)l=l.children[0];var n=b.substring(l.range[0],l.range[1]);return"If you want to call `"+n+"` as function, you need `()`'s"}}}return"Unexpected token: "+a.message}if("CLASSIFY"==a.extra.kind)return'"'===a.extra.value?'Unterminated string. Add a matching `"` at the end of your string.':"Unterminated `"+a.extra.value+"`";if("STRING_EOF"==a.extra.kind)return'Unterminated muti-line string. Add a matching `"""` at the end of your string.';if("STATEMENT_EOF"==a.extra.kind){if(a.extra.parenlev>0){var o=a.extra.parenstack[a.extra.parenstack.length-1],p=o[0],q="([{",r=")]}",s=r[q.indexOf(p)];return e(a,o[1],o[2]-1),"Unmatched `"+p+"`. Every opening `"+p+"` needs a closing `"+s+"` to match it."}return a.message}return a.message}var i=c(1);a.exports=d},function(a,b,c){!function(b,c){"use strict";a.exports=c()}(this,function(){"use strict";function a(){}var b={internal:{isSeq:function(a){return a&&("list"===a._type||"tuple"===a._type)},slice:function(a,c,d,e){var f;f="string"==typeof a?function(b,c){return a.substring(b,c)}:a.slice.bind(a),(null==e||0===e)&&(e=1),null==c?c=0>e?a.length-1:0:0>c&&(c+=a.length),null==d?d=0>e?-1:a.length:0>d&&(d+=a.length);var g,h,i=new b.objects.list;if(0>e)for(g=f(d+1,c+1),h=g.length-1;h>=0;h+=e)i.append(g[h]);else if(g=f(c,d),1===e&&"string"!=typeof g)i=b.utils.createList(g);else for(h=0;h<g.length;h+=e)i.append(g[h]);return"string"==typeof a?i.join(""):i},isJSArray:Array.isArray||function(a){return"[object Array]"===toString.call(a)}},utils:{createDict:function(){var a=new b.objects.dict;if(!(1===arguments.length&&arguments[0]instanceof Object))throw TypeError("createDict expects a single JavaScript object");for(var c in arguments[0])a[c]=arguments[0][c];return a},createParamsObj:function(){for(var c={formals:new b.objects.list,keywords:new a},d=0;d<arguments.length;d++)if(arguments[d]&&arguments[d].__kwp===!0)for(var e in arguments[d])"__kwp"!==e&&(c.keywords[e]=arguments[d][e]);else c.formals.push(arguments[d]);return c},convertToList:function(a){return Object.defineProperties(a,b.utils.listPropertyDescriptor),a},convertToDict:function(a){return Object.defineProperties(a,b.utils.dictPropertyDescriptor),a},listPropertyDescriptor:{_type:{get:function(){return"list"},enumerable:!1},_isPython:{get:function(){return!0},enumerable:!1},append:{value:function(a){this.push(a)},enumerable:!1},clear:{value:function(){this.splice(0,this.length)},enumerable:!1},copy:{value:function(){return this.slice(0)},enumerable:!1},count:{value:function(a){for(var b=0,c=0;c<this.length;c++)this[c]===a&&b++;return b},enumerable:!1},equals:{value:function(a){try{if(this.length!==a.length)return!1;for(var b=0;b<this.length;b++)if(this[b].hasOwnProperty("equals")){if(!this[b].equals(a[b]))return!1}else if(this[b]!==a[b])return!1;return!0}catch(c){}return!1},enumerable:!1},extend:{value:function(a){for(var b=0;b<a.length;b++)this.push(a[b])},enumerable:!1},index:{value:function(a){return this.indexOf(a)},enumerable:!1},indexOf:{value:function(a,b){try{for(var c=b?b:0;c<this.length;c++)if(this[c].hasOwnProperty("equals")){if(this[c].equals(a))return c}else if(this[c]===a)return c}catch(d){}return-1},enumerable:!1},insert:{value:function(a,b){this.splice(a,0,b)},enumerable:!1},pop:{value:function(a){arguments.length<1&&(a=this.length-1);var b=this[a];return this.splice(a,1),b},enumerable:!1},_pySlice:{value:function(a,c,d){return b.internal.slice(this,a,c,d)},enumerable:!1},remove:{value:function(a){this.splice(this.indexOf(a),1)},enumerable:!1},sort:{value:function(a,b){var c=this.slice(0),d=function(b,d){var e=c.map(a),f={};for(var g in e)f[e[g]]=c[g];d?e.sort(function(a,b){return a-b}):e.sort();for(var g in b)b[g]=f[e[g]]};for(var e in this)if("number"!=typeof this[e]||!isFinite(this[e])){if("undefined"!=typeof a)d(this,!1);else{c.sort();for(var f in this)this[f]=c[f]}return void(b&&this.reverse())}if("undefined"!=typeof a)d(this,!0);else{c.sort(function(a,b){return a-b});for(var e in this)this[e]=c[e];
}b&&this.reverse()},enumerable:!1},toString:{value:function(){return"["+this.join(", ")+"]"},enumerable:!1}},createList:function(){var a=new b.objects.list;if(1===arguments.length&&arguments[0]instanceof Array)for(var c in arguments[0])a.push(arguments[0][c]);else for(var c in arguments)a.push(arguments[c]);return a},dictPropertyDescriptor:{_type:{get:function(){return"dict"},enumerable:!1},_isPython:{get:function(){return!0},enumerable:!1},items:{value:function(){var a=new b.objects.list;for(var c in this)a.append(new b.objects.tuple(c,this[c]));return a},enumerable:!1},length:{get:function(){return Object.keys(this).length},enumerable:!1},clear:{value:function(){for(var a in this)delete this[a]},enumerable:!1},get:{value:function(a,b){return a in this?this[a]:void 0!==b?b:null},enumerable:!1},keys:{value:function(){return Object.keys(this)},enumerable:!1},pop:{value:function(a,b){var c;if(a in this)c=this[a],delete this[a];else{if(void 0===b)return new Error("KeyError");c=b}return c},enumerable:!1},values:{value:function(){var a=new b.objects.list;for(var c in this)a.append(this[c]);return a},enumerable:!1}}},ops:{add:function(a,c){if("object"==typeof a&&b.internal.isSeq(a)&&b.internal.isSeq(c)){if(a._type!==c._type)throw TypeError("can only concatenate "+a._type+" (not '"+c._type+"') to "+a._type);var d;if("list"===a._type?d=new b.objects.list:"tuple"===a._type&&(d=new b.objects.tuple),d){for(var e=0;e<a.length;e++)d.push(a[e]);for(var e=0;e<c.length;e++)d.push(c[e]);return d}}return a+c},"in":function(a,b,c){var d=b.hasOwnProperty("indexOf")?b.indexOf(a)>=0:a in b;return c?!d:d},multiply:function(a,c){if("object"==typeof a)if(b.internal.isSeq(a)&&!isNaN(parseInt(c))){var d;if("list"===a._type?d=new b.objects.list:"tuple"===a._type&&(d=new b.objects.tuple),d){for(var e=0;c>e;e++)for(var f=0;f<a.length;f++)d.push(a[f]);return d}}else if(b.internal.isSeq(c)&&!isNaN(parseInt(a))){var d;if("list"===c._type?d=new b.objects.list:"tuple"===c._type&&(d=new b.objects.tuple),d){for(var e=0;a>e;e++)for(var f=0;f<c.length;f++)d.push(c[f]);return d}}return a*c},subscriptIndex:function(a,c){return c>=0?c:b.internal.isSeq(a)?a.length+c:b.internal.isJSArray(a)?a.length+c:"string"==typeof a?a.length+c:c}},objects:{dict:function(){for(var b=new a,c=0;c<arguments.length;++c)b[arguments[c][0]]=arguments[c][1];return b},list:function(){var a=[];return a.push.apply(a,arguments),b.utils.convertToList(a),a},tuple:function(){var a=[];return a.push.apply(a,arguments),Object.defineProperty(a,"_type",{get:function(){return"tuple"},enumerable:!1}),Object.defineProperty(a,"_isPython",{get:function(){return!0},enumerable:!1}),Object.defineProperty(a,"count",{value:function(a){for(var b=0,c=0;c<this.length;c++)this[c]===a&&b++;return b},enumerable:!1}),Object.defineProperty(a,"equals",{value:function(a){try{if(this.length!==a.length)return!1;for(var b=0;b<this.length;b++)if(this[b].hasOwnProperty("equals")){if(!this[b].equals(a[b]))return!1}else if(this[b]!==a[b])return!1;return!0}catch(c){}return!1},enumerable:!1}),Object.defineProperty(a,"index",{value:function(a){return this.indexOf(a)},enumerable:!1}),Object.defineProperty(a,"indexOf",{value:function(a,b){try{for(var c=b?b:0;c<this.length;c++)if(this[c].hasOwnProperty("equals")){if(this[c].equals(a))return c}else if(this[c]===a)return c}catch(d){}return-1},enumerable:!1}),Object.defineProperty(a,"_pySlice",{value:function(a,c,d){return b.internal.slice(this,a,c,d)},enumerable:!1}),Object.defineProperty(a,"toString",{value:function(){var a="("+this.join(", ");return 1===this.length&&(a+=","),a+=")"},enumerable:!1}),a}},functions:{abs:function(a){return Math.abs(a)},all:function(a){for(var c in a)if(b.functions.bool(a[c])!==!0)return!1;return!0},any:function(a){for(var c in a)if(b.functions.bool(a[c])===!0)return!0;return!1},ascii:function(a){for(var c,d=b.functions.repr(a),e="",f=0;f<d.length;f++)c=d.charCodeAt(f),127>=c?e+=d[f]:255>=c?e+="\\x"+c.toString(16):c>=55296&&56319>=c?(c=1024*(c-55296)+(d.charCodeAt(++f)-56320)+65536,e+="\\U"+("000"+c.toString(16)).slice(-8)):65535>=c?e+="\\u"+("0"+c.toString(16)).slice(-4):1114111>=c&&(e+="\\U"+("000"+c.toString(16)).slice(-8));return e},bool:function(a){return!(void 0===a||null===a||a===!1||0===a||0===a.length||void 0!==a.__bool__&&a.__bool__()===!1||void 0!==a.__len__&&(a.__len__()===!1||0===a.__len__()))},chr:function(a){return String.fromCharCode(a)},divmod:function(a,c){return b.objects.tuple(Math.floor(a/c),a%c)},enumerate:function(a,c){c=c||0;var d=new b.objects.list;for(var e in a)d.push(new b.objects.tuple(c++,a[e]));return d},filter:function(a,c){a=a||function(){return!0};var d=new b.objects.list;for(var e in c)a(c[e])&&d.push(c[e]);return d},"float":function(a){return void 0===a?0:"string"==typeof a?(a=a.trim().toLowerCase(),null!==/^[+-]?inf(inity)?$/i.exec(a)?1/0*("-"===a[0]?-1:1):null!==/^nan$/i.exec(a)?NaN:parseFloat(a)):"number"==typeof a?a:void 0!==a.__float__?a.__float__():null},hex:function(a){return a.toString(16)},"int":function(a){return parseInt(a)},len:function(a){return a.length},list:function(a){var c=new b.objects.list;if(0==arguments.length)return c;if(arguments.length>1)throw new TypeError("list() takes at most 1 argument ("+arguments.length+" given)");if(a instanceof Array)for(var d in a)c.push(a[d]);else for(var d in a)c.push(d);return c},map:function(a,c){var d=new b.objects.list;for(var e in c)d.push(a(c[e]));return d},max:function(a,b){if(b)return a>=b?a:b;var c=null;for(var d in a)(null===c||a[d]>c)&&(c=a[d]);return c},min:function(a,b){if(b)return b>=a?a:b;var c=null;for(var d in a)(null===c||a[d]<c)&&(c=a[d]);return c},oct:function(a){return a.toString(8)},ord:function(a){return a.charCodeAt(0)},pow:function(a,b,c){return c?Math.pow(a,b)%c:Math.pow(a,b)},print:function(){for(var a="",b=0;b<arguments.length;b++)a+=0===b?arguments[b]:" "+arguments[b];console.log(a)},range:function(a,c,d){void 0===c?(c=a,a=0,d=1):void 0===d&&(d=1);var e=~~((c-a)/d);if(0>e)return b.utils.convertToList([]);for(var f=new Array(e),g=0,h=a;c>h&&d>0||h>c&&0>d;)f[g++]=h,h+=d;return b.utils.convertToList(f),f},repr:function(a){return"string"==typeof a?"'"+a+"'":void 0!==a.__repr__?a.__repr__():void 0!==a.__class__&&void 0!==a.__class__.module&&a.__class__.__name__?"<"+a.__class__.__module__+"."+a.__class__.__name__+" object>":a.toString()},reversed:function(a){var c=new b.objects.list;for(var d in a)c.push(a[d]);return c.reverse()},round:function(a,b){if(b){var c=Math.pow(10,b);return Math.round(a*c)/c}return Math.round(a)},sorted:function(a,c,d){var e=new b.objects.list;for(var f in a)e.push(a[f]);return c?e.sort(c):e.sort(),d&&e.reverse(),e},str:function(a){return a.toString()},sum:function(a,b){var c=b||0;for(var d in a)c+=a[d];return c},tuple:function(a){var c=new b.objects.tuple;for(var d in a)c.push(a[d]);return c}},imports:{random:{random:function(){return Math.random()}}}};return Object.defineProperties(a.prototype,b.utils.dictPropertyDescriptor),b})}])})},{}],2:[function(a,b,c){window.aetherFilbert=a("skulpty"),window.aetherFilbertLoose=a("skulpty")},{skulpty:1}]},{},[2]);