sjy-ecos/public/lib/bokeh/js/bokeh-compiler.js.map

1 line
345 KiB
Plaintext

{"version":3,"sources":["src/js/plugin-prelude.js","build/js/tree/compiler/main.js","node_modules/browserify/lib/_empty.js","node_modules/coffee-script/lib/coffee-script/coffee-script.js","node_modules/coffee-script/lib/coffee-script/helpers.js","node_modules/coffee-script/lib/coffee-script/lexer.js","node_modules/coffee-script/lib/coffee-script/nodes.js","node_modules/coffee-script/lib/coffee-script/parser.js","node_modules/coffee-script/lib/coffee-script/register.js","node_modules/coffee-script/lib/coffee-script/rewriter.js","node_modules/coffee-script/lib/coffee-script/scope.js","node_modules/coffee-script/lib/coffee-script/sourcemap.js","node_modules/eco/lib/compiler.js","node_modules/eco/lib/index.js","node_modules/eco/lib/preprocessor.js","node_modules/eco/lib/scanner.js","node_modules/eco/lib/util.js","node_modules/indexof/index.js","node_modules/path-browserify/index.js","node_modules/process/browser.js","node_modules/strscan/lib/strscan.js","node_modules/vm-browserify/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrBA;AACA;AACA;AACA;AACA;AACA;;ACLA;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACxPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACn/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3uGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC9tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AChOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"bokeh-compiler.js","sourceRoot":"/source/","sourcesContent":["(function outer(modules, cache, entry) {\n if (typeof Bokeh !== \"undefined\") {\n var _ = Bokeh._;\n\n for (var name in modules) {\n Bokeh.require.modules[name] = modules[name];\n }\n\n for (var i = 0; i < entry.length; i++) {\n var exports = Bokeh.require(entry[i]);\n\n if (_.isObject(exports.models)) {\n Bokeh.Models.register_locations(exports.models);\n }\n\n _.extend(Bokeh, _.omit(exports, \"models\"));\n }\n } else {\n throw new Error(\"Cannot find Bokeh. You have to load it prior to loading plugins.\");\n }\n})\n","var coffee, eco;\n\ncoffee = require(\"coffee-script\");\n\neco = require(\"eco\");\n","","// Generated by CoffeeScript 1.10.0\n(function() {\n var Lexer, SourceMap, base, compile, ext, formatSourcePosition, fs, getSourceMap, helpers, i, len, lexer, parser, path, ref, sourceMaps, vm, withPrettyErrors,\n hasProp = {}.hasOwnProperty,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n fs = require('fs');\n\n vm = require('vm');\n\n path = require('path');\n\n Lexer = require('./lexer').Lexer;\n\n parser = require('./parser').parser;\n\n helpers = require('./helpers');\n\n SourceMap = require('./sourcemap');\n\n exports.VERSION = '1.10.0';\n\n exports.FILE_EXTENSIONS = ['.coffee', '.litcoffee', '.coffee.md'];\n\n exports.helpers = helpers;\n\n withPrettyErrors = function(fn) {\n return function(code, options) {\n var err, error;\n if (options == null) {\n options = {};\n }\n try {\n return fn.call(this, code, options);\n } catch (error) {\n err = error;\n if (typeof code !== 'string') {\n throw err;\n }\n throw helpers.updateSyntaxError(err, code, options.filename);\n }\n };\n };\n\n exports.compile = compile = withPrettyErrors(function(code, options) {\n var answer, currentColumn, currentLine, extend, fragment, fragments, header, i, js, len, map, merge, newLines, token, tokens;\n merge = helpers.merge, extend = helpers.extend;\n options = extend({}, options);\n if (options.sourceMap) {\n map = new SourceMap;\n }\n tokens = lexer.tokenize(code, options);\n options.referencedVars = (function() {\n var i, len, results;\n results = [];\n for (i = 0, len = tokens.length; i < len; i++) {\n token = tokens[i];\n if (token.variable) {\n results.push(token[1]);\n }\n }\n return results;\n })();\n fragments = parser.parse(tokens).compileToFragments(options);\n currentLine = 0;\n if (options.header) {\n currentLine += 1;\n }\n if (options.shiftLine) {\n currentLine += 1;\n }\n currentColumn = 0;\n js = \"\";\n for (i = 0, len = fragments.length; i < len; i++) {\n fragment = fragments[i];\n if (options.sourceMap) {\n if (fragment.locationData && !/^[;\\s]*$/.test(fragment.code)) {\n map.add([fragment.locationData.first_line, fragment.locationData.first_column], [currentLine, currentColumn], {\n noReplace: true\n });\n }\n newLines = helpers.count(fragment.code, \"\\n\");\n currentLine += newLines;\n if (newLines) {\n currentColumn = fragment.code.length - (fragment.code.lastIndexOf(\"\\n\") + 1);\n } else {\n currentColumn += fragment.code.length;\n }\n }\n js += fragment.code;\n }\n if (options.header) {\n header = \"Generated by CoffeeScript \" + this.VERSION;\n js = \"// \" + header + \"\\n\" + js;\n }\n if (options.sourceMap) {\n answer = {\n js: js\n };\n answer.sourceMap = map;\n answer.v3SourceMap = map.generate(options, code);\n return answer;\n } else {\n return js;\n }\n });\n\n exports.tokens = withPrettyErrors(function(code, options) {\n return lexer.tokenize(code, options);\n });\n\n exports.nodes = withPrettyErrors(function(source, options) {\n if (typeof source === 'string') {\n return parser.parse(lexer.tokenize(source, options));\n } else {\n return parser.parse(source);\n }\n });\n\n exports.run = function(code, options) {\n var answer, dir, mainModule, ref;\n if (options == null) {\n options = {};\n }\n mainModule = require.main;\n mainModule.filename = process.argv[1] = options.filename ? fs.realpathSync(options.filename) : '.';\n mainModule.moduleCache && (mainModule.moduleCache = {});\n dir = options.filename ? path.dirname(fs.realpathSync(options.filename)) : fs.realpathSync('.');\n mainModule.paths = require('module')._nodeModulePaths(dir);\n if (!helpers.isCoffee(mainModule.filename) || require.extensions) {\n answer = compile(code, options);\n code = (ref = answer.js) != null ? ref : answer;\n }\n return mainModule._compile(code, mainModule.filename);\n };\n\n exports[\"eval\"] = function(code, options) {\n var Module, _module, _require, createContext, i, isContext, js, k, len, o, r, ref, ref1, ref2, ref3, sandbox, v;\n if (options == null) {\n options = {};\n }\n if (!(code = code.trim())) {\n return;\n }\n createContext = (ref = vm.Script.createContext) != null ? ref : vm.createContext;\n isContext = (ref1 = vm.isContext) != null ? ref1 : function(ctx) {\n return options.sandbox instanceof createContext().constructor;\n };\n if (createContext) {\n if (options.sandbox != null) {\n if (isContext(options.sandbox)) {\n sandbox = options.sandbox;\n } else {\n sandbox = createContext();\n ref2 = options.sandbox;\n for (k in ref2) {\n if (!hasProp.call(ref2, k)) continue;\n v = ref2[k];\n sandbox[k] = v;\n }\n }\n sandbox.global = sandbox.root = sandbox.GLOBAL = sandbox;\n } else {\n sandbox = global;\n }\n sandbox.__filename = options.filename || 'eval';\n sandbox.__dirname = path.dirname(sandbox.__filename);\n if (!(sandbox !== global || sandbox.module || sandbox.require)) {\n Module = require('module');\n sandbox.module = _module = new Module(options.modulename || 'eval');\n sandbox.require = _require = function(path) {\n return Module._load(path, _module, true);\n };\n _module.filename = sandbox.__filename;\n ref3 = Object.getOwnPropertyNames(require);\n for (i = 0, len = ref3.length; i < len; i++) {\n r = ref3[i];\n if (r !== 'paths' && r !== 'arguments' && r !== 'caller') {\n _require[r] = require[r];\n }\n }\n _require.paths = _module.paths = Module._nodeModulePaths(process.cwd());\n _require.resolve = function(request) {\n return Module._resolveFilename(request, _module);\n };\n }\n }\n o = {};\n for (k in options) {\n if (!hasProp.call(options, k)) continue;\n v = options[k];\n o[k] = v;\n }\n o.bare = true;\n js = compile(code, o);\n if (sandbox === global) {\n return vm.runInThisContext(js);\n } else {\n return vm.runInContext(js, sandbox);\n }\n };\n\n exports.register = function() {\n return require('./register');\n };\n\n if (require.extensions) {\n ref = this.FILE_EXTENSIONS;\n for (i = 0, len = ref.length; i < len; i++) {\n ext = ref[i];\n if ((base = require.extensions)[ext] == null) {\n base[ext] = function() {\n throw new Error(\"Use CoffeeScript.register() or require the coffee-script/register module to require \" + ext + \" files.\");\n };\n }\n }\n }\n\n exports._compileFile = function(filename, sourceMap) {\n var answer, err, error, raw, stripped;\n if (sourceMap == null) {\n sourceMap = false;\n }\n raw = fs.readFileSync(filename, 'utf8');\n stripped = raw.charCodeAt(0) === 0xFEFF ? raw.substring(1) : raw;\n try {\n answer = compile(stripped, {\n filename: filename,\n sourceMap: sourceMap,\n literate: helpers.isLiterate(filename)\n });\n } catch (error) {\n err = error;\n throw helpers.updateSyntaxError(err, stripped, filename);\n }\n return answer;\n };\n\n lexer = new Lexer;\n\n parser.lexer = {\n lex: function() {\n var tag, token;\n token = parser.tokens[this.pos++];\n if (token) {\n tag = token[0], this.yytext = token[1], this.yylloc = token[2];\n parser.errorToken = token.origin || token;\n this.yylineno = this.yylloc.first_line;\n } else {\n tag = '';\n }\n return tag;\n },\n setInput: function(tokens) {\n parser.tokens = tokens;\n return this.pos = 0;\n },\n upcomingInput: function() {\n return \"\";\n }\n };\n\n parser.yy = require('./nodes');\n\n parser.yy.parseError = function(message, arg) {\n var errorLoc, errorTag, errorText, errorToken, token, tokens;\n token = arg.token;\n errorToken = parser.errorToken, tokens = parser.tokens;\n errorTag = errorToken[0], errorText = errorToken[1], errorLoc = errorToken[2];\n errorText = (function() {\n switch (false) {\n case errorToken !== tokens[tokens.length - 1]:\n return 'end of input';\n case errorTag !== 'INDENT' && errorTag !== 'OUTDENT':\n return 'indentation';\n case errorTag !== 'IDENTIFIER' && errorTag !== 'NUMBER' && errorTag !== 'STRING' && errorTag !== 'STRING_START' && errorTag !== 'REGEX' && errorTag !== 'REGEX_START':\n return errorTag.replace(/_START$/, '').toLowerCase();\n default:\n return helpers.nameWhitespaceCharacter(errorText);\n }\n })();\n return helpers.throwSyntaxError(\"unexpected \" + errorText, errorLoc);\n };\n\n formatSourcePosition = function(frame, getSourceMapping) {\n var as, column, fileLocation, fileName, functionName, isConstructor, isMethodCall, line, methodName, source, tp, typeName;\n fileName = void 0;\n fileLocation = '';\n if (frame.isNative()) {\n fileLocation = \"native\";\n } else {\n if (frame.isEval()) {\n fileName = frame.getScriptNameOrSourceURL();\n if (!fileName) {\n fileLocation = (frame.getEvalOrigin()) + \", \";\n }\n } else {\n fileName = frame.getFileName();\n }\n fileName || (fileName = \"<anonymous>\");\n line = frame.getLineNumber();\n column = frame.getColumnNumber();\n source = getSourceMapping(fileName, line, column);\n fileLocation = source ? fileName + \":\" + source[0] + \":\" + source[1] : fileName + \":\" + line + \":\" + column;\n }\n functionName = frame.getFunctionName();\n isConstructor = frame.isConstructor();\n isMethodCall = !(frame.isToplevel() || isConstructor);\n if (isMethodCall) {\n methodName = frame.getMethodName();\n typeName = frame.getTypeName();\n if (functionName) {\n tp = as = '';\n if (typeName && functionName.indexOf(typeName)) {\n tp = typeName + \".\";\n }\n if (methodName && functionName.indexOf(\".\" + methodName) !== functionName.length - methodName.length - 1) {\n as = \" [as \" + methodName + \"]\";\n }\n return \"\" + tp + functionName + as + \" (\" + fileLocation + \")\";\n } else {\n return typeName + \".\" + (methodName || '<anonymous>') + \" (\" + fileLocation + \")\";\n }\n } else if (isConstructor) {\n return \"new \" + (functionName || '<anonymous>') + \" (\" + fileLocation + \")\";\n } else if (functionName) {\n return functionName + \" (\" + fileLocation + \")\";\n } else {\n return fileLocation;\n }\n };\n\n sourceMaps = {};\n\n getSourceMap = function(filename) {\n var answer, ref1;\n if (sourceMaps[filename]) {\n return sourceMaps[filename];\n }\n if (ref1 = path != null ? path.extname(filename) : void 0, indexOf.call(exports.FILE_EXTENSIONS, ref1) < 0) {\n return;\n }\n answer = exports._compileFile(filename, true);\n return sourceMaps[filename] = answer.sourceMap;\n };\n\n Error.prepareStackTrace = function(err, stack) {\n var frame, frames, getSourceMapping;\n getSourceMapping = function(filename, line, column) {\n var answer, sourceMap;\n sourceMap = getSourceMap(filename);\n if (sourceMap) {\n answer = sourceMap.sourceLocation([line - 1, column - 1]);\n }\n if (answer) {\n return [answer[0] + 1, answer[1] + 1];\n } else {\n return null;\n }\n };\n frames = (function() {\n var j, len1, results;\n results = [];\n for (j = 0, len1 = stack.length; j < len1; j++) {\n frame = stack[j];\n if (frame.getFunction() === exports.run) {\n break;\n }\n results.push(\" at \" + (formatSourcePosition(frame, getSourceMapping)));\n }\n return results;\n })();\n return (err.toString()) + \"\\n\" + (frames.join('\\n')) + \"\\n\";\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var buildLocationData, extend, flatten, ref, repeat, syntaxErrorToString;\n\n exports.starts = function(string, literal, start) {\n return literal === string.substr(start, literal.length);\n };\n\n exports.ends = function(string, literal, back) {\n var len;\n len = literal.length;\n return literal === string.substr(string.length - len - (back || 0), len);\n };\n\n exports.repeat = repeat = function(str, n) {\n var res;\n res = '';\n while (n > 0) {\n if (n & 1) {\n res += str;\n }\n n >>>= 1;\n str += str;\n }\n return res;\n };\n\n exports.compact = function(array) {\n var i, item, len1, results;\n results = [];\n for (i = 0, len1 = array.length; i < len1; i++) {\n item = array[i];\n if (item) {\n results.push(item);\n }\n }\n return results;\n };\n\n exports.count = function(string, substr) {\n var num, pos;\n num = pos = 0;\n if (!substr.length) {\n return 1 / 0;\n }\n while (pos = 1 + string.indexOf(substr, pos)) {\n num++;\n }\n return num;\n };\n\n exports.merge = function(options, overrides) {\n return extend(extend({}, options), overrides);\n };\n\n extend = exports.extend = function(object, properties) {\n var key, val;\n for (key in properties) {\n val = properties[key];\n object[key] = val;\n }\n return object;\n };\n\n exports.flatten = flatten = function(array) {\n var element, flattened, i, len1;\n flattened = [];\n for (i = 0, len1 = array.length; i < len1; i++) {\n element = array[i];\n if ('[object Array]' === Object.prototype.toString.call(element)) {\n flattened = flattened.concat(flatten(element));\n } else {\n flattened.push(element);\n }\n }\n return flattened;\n };\n\n exports.del = function(obj, key) {\n var val;\n val = obj[key];\n delete obj[key];\n return val;\n };\n\n exports.some = (ref = Array.prototype.some) != null ? ref : function(fn) {\n var e, i, len1;\n for (i = 0, len1 = this.length; i < len1; i++) {\n e = this[i];\n if (fn(e)) {\n return true;\n }\n }\n return false;\n };\n\n exports.invertLiterate = function(code) {\n var line, lines, maybe_code;\n maybe_code = true;\n lines = (function() {\n var i, len1, ref1, results;\n ref1 = code.split('\\n');\n results = [];\n for (i = 0, len1 = ref1.length; i < len1; i++) {\n line = ref1[i];\n if (maybe_code && /^([ ]{4}|[ ]{0,3}\\t)/.test(line)) {\n results.push(line);\n } else if (maybe_code = /^\\s*$/.test(line)) {\n results.push(line);\n } else {\n results.push('# ' + line);\n }\n }\n return results;\n })();\n return lines.join('\\n');\n };\n\n buildLocationData = function(first, last) {\n if (!last) {\n return first;\n } else {\n return {\n first_line: first.first_line,\n first_column: first.first_column,\n last_line: last.last_line,\n last_column: last.last_column\n };\n }\n };\n\n exports.addLocationDataFn = function(first, last) {\n return function(obj) {\n if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) {\n obj.updateLocationDataIfMissing(buildLocationData(first, last));\n }\n return obj;\n };\n };\n\n exports.locationDataToString = function(obj) {\n var locationData;\n if ((\"2\" in obj) && (\"first_line\" in obj[2])) {\n locationData = obj[2];\n } else if (\"first_line\" in obj) {\n locationData = obj;\n }\n if (locationData) {\n return ((locationData.first_line + 1) + \":\" + (locationData.first_column + 1) + \"-\") + ((locationData.last_line + 1) + \":\" + (locationData.last_column + 1));\n } else {\n return \"No location data\";\n }\n };\n\n exports.baseFileName = function(file, stripExt, useWinPathSep) {\n var parts, pathSep;\n if (stripExt == null) {\n stripExt = false;\n }\n if (useWinPathSep == null) {\n useWinPathSep = false;\n }\n pathSep = useWinPathSep ? /\\\\|\\// : /\\//;\n parts = file.split(pathSep);\n file = parts[parts.length - 1];\n if (!(stripExt && file.indexOf('.') >= 0)) {\n return file;\n }\n parts = file.split('.');\n parts.pop();\n if (parts[parts.length - 1] === 'coffee' && parts.length > 1) {\n parts.pop();\n }\n return parts.join('.');\n };\n\n exports.isCoffee = function(file) {\n return /\\.((lit)?coffee|coffee\\.md)$/.test(file);\n };\n\n exports.isLiterate = function(file) {\n return /\\.(litcoffee|coffee\\.md)$/.test(file);\n };\n\n exports.throwSyntaxError = function(message, location) {\n var error;\n error = new SyntaxError(message);\n error.location = location;\n error.toString = syntaxErrorToString;\n error.stack = error.toString();\n throw error;\n };\n\n exports.updateSyntaxError = function(error, code, filename) {\n if (error.toString === syntaxErrorToString) {\n error.code || (error.code = code);\n error.filename || (error.filename = filename);\n error.stack = error.toString();\n }\n return error;\n };\n\n syntaxErrorToString = function() {\n var codeLine, colorize, colorsEnabled, end, filename, first_column, first_line, last_column, last_line, marker, ref1, ref2, ref3, ref4, start;\n if (!(this.code && this.location)) {\n return Error.prototype.toString.call(this);\n }\n ref1 = this.location, first_line = ref1.first_line, first_column = ref1.first_column, last_line = ref1.last_line, last_column = ref1.last_column;\n if (last_line == null) {\n last_line = first_line;\n }\n if (last_column == null) {\n last_column = first_column;\n }\n filename = this.filename || '[stdin]';\n codeLine = this.code.split('\\n')[first_line];\n start = first_column;\n end = first_line === last_line ? last_column + 1 : codeLine.length;\n marker = codeLine.slice(0, start).replace(/[^\\s]/g, ' ') + repeat('^', end - start);\n if (typeof process !== \"undefined\" && process !== null) {\n colorsEnabled = ((ref2 = process.stdout) != null ? ref2.isTTY : void 0) && !((ref3 = process.env) != null ? ref3.NODE_DISABLE_COLORS : void 0);\n }\n if ((ref4 = this.colorful) != null ? ref4 : colorsEnabled) {\n colorize = function(str) {\n return \"\\x1B[1;31m\" + str + \"\\x1B[0m\";\n };\n codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end);\n marker = colorize(marker);\n }\n return filename + \":\" + (first_line + 1) + \":\" + (first_column + 1) + \": error: \" + this.message + \"\\n\" + codeLine + \"\\n\" + marker;\n };\n\n exports.nameWhitespaceCharacter = function(string) {\n switch (string) {\n case ' ':\n return 'space';\n case '\\n':\n return 'newline';\n case '\\r':\n return 'carriage return';\n case '\\t':\n return 'tab';\n default:\n return string;\n }\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HERECOMMENT_ILLEGAL, HEREDOC_DOUBLE, HEREDOC_INDENT, HEREDOC_SINGLE, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDENTABLE_CLOSERS, INDEXABLE, INVALID_ESCAPE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LEADING_BLANK_LINE, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTI_DENT, NOT_REGEX, NUMBER, OPERATOR, POSSIBLY_DIVISION, REGEX, REGEX_FLAGS, REGEX_ILLEGAL, RELATION, RESERVED, Rewriter, SHIFT, SIMPLE_STRING_OMIT, STRICT_PROSCRIBED, STRING_DOUBLE, STRING_OMIT, STRING_SINGLE, STRING_START, TRAILING_BLANK_LINE, TRAILING_SPACES, UNARY, UNARY_MATH, VALID_FLAGS, WHITESPACE, compact, count, invertLiterate, key, locationDataToString, ref, ref1, repeat, starts, throwSyntaxError,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n ref = require('./rewriter'), Rewriter = ref.Rewriter, INVERSES = ref.INVERSES;\n\n ref1 = require('./helpers'), count = ref1.count, starts = ref1.starts, compact = ref1.compact, repeat = ref1.repeat, invertLiterate = ref1.invertLiterate, locationDataToString = ref1.locationDataToString, throwSyntaxError = ref1.throwSyntaxError;\n\n exports.Lexer = Lexer = (function() {\n function Lexer() {}\n\n Lexer.prototype.tokenize = function(code, opts) {\n var consumed, end, i, ref2;\n if (opts == null) {\n opts = {};\n }\n this.literate = opts.literate;\n this.indent = 0;\n this.baseIndent = 0;\n this.indebt = 0;\n this.outdebt = 0;\n this.indents = [];\n this.ends = [];\n this.tokens = [];\n this.seenFor = false;\n this.chunkLine = opts.line || 0;\n this.chunkColumn = opts.column || 0;\n code = this.clean(code);\n i = 0;\n while (this.chunk = code.slice(i)) {\n consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken();\n ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = ref2[0], this.chunkColumn = ref2[1];\n i += consumed;\n if (opts.untilBalanced && this.ends.length === 0) {\n return {\n tokens: this.tokens,\n index: i\n };\n }\n }\n this.closeIndentation();\n if (end = this.ends.pop()) {\n this.error(\"missing \" + end.tag, end.origin[2]);\n }\n if (opts.rewrite === false) {\n return this.tokens;\n }\n return (new Rewriter).rewrite(this.tokens);\n };\n\n Lexer.prototype.clean = function(code) {\n if (code.charCodeAt(0) === BOM) {\n code = code.slice(1);\n }\n code = code.replace(/\\r/g, '').replace(TRAILING_SPACES, '');\n if (WHITESPACE.test(code)) {\n code = \"\\n\" + code;\n this.chunkLine--;\n }\n if (this.literate) {\n code = invertLiterate(code);\n }\n return code;\n };\n\n Lexer.prototype.identifierToken = function() {\n var alias, colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, ref2, ref3, ref4, ref5, tag, tagToken;\n if (!(match = IDENTIFIER.exec(this.chunk))) {\n return 0;\n }\n input = match[0], id = match[1], colon = match[2];\n idLength = id.length;\n poppedToken = void 0;\n if (id === 'own' && this.tag() === 'FOR') {\n this.token('OWN', id);\n return id.length;\n }\n if (id === 'from' && this.tag() === 'YIELD') {\n this.token('FROM', id);\n return id.length;\n }\n ref2 = this.tokens, prev = ref2[ref2.length - 1];\n forcedIdentifier = colon || (prev != null) && (((ref3 = prev[0]) === '.' || ref3 === '?.' || ref3 === '::' || ref3 === '?::') || !prev.spaced && prev[0] === '@');\n tag = 'IDENTIFIER';\n if (!forcedIdentifier && (indexOf.call(JS_KEYWORDS, id) >= 0 || indexOf.call(COFFEE_KEYWORDS, id) >= 0)) {\n tag = id.toUpperCase();\n if (tag === 'WHEN' && (ref4 = this.tag(), indexOf.call(LINE_BREAK, ref4) >= 0)) {\n tag = 'LEADING_WHEN';\n } else if (tag === 'FOR') {\n this.seenFor = true;\n } else if (tag === 'UNLESS') {\n tag = 'IF';\n } else if (indexOf.call(UNARY, tag) >= 0) {\n tag = 'UNARY';\n } else if (indexOf.call(RELATION, tag) >= 0) {\n if (tag !== 'INSTANCEOF' && this.seenFor) {\n tag = 'FOR' + tag;\n this.seenFor = false;\n } else {\n tag = 'RELATION';\n if (this.value() === '!') {\n poppedToken = this.tokens.pop();\n id = '!' + id;\n }\n }\n }\n }\n if (indexOf.call(JS_FORBIDDEN, id) >= 0) {\n if (forcedIdentifier) {\n tag = 'IDENTIFIER';\n id = new String(id);\n id.reserved = true;\n } else if (indexOf.call(RESERVED, id) >= 0) {\n this.error(\"reserved word '\" + id + \"'\", {\n length: id.length\n });\n }\n }\n if (!forcedIdentifier) {\n if (indexOf.call(COFFEE_ALIASES, id) >= 0) {\n alias = id;\n id = COFFEE_ALIAS_MAP[id];\n }\n tag = (function() {\n switch (id) {\n case '!':\n return 'UNARY';\n case '==':\n case '!=':\n return 'COMPARE';\n case '&&':\n case '||':\n return 'LOGIC';\n case 'true':\n case 'false':\n return 'BOOL';\n case 'break':\n case 'continue':\n return 'STATEMENT';\n default:\n return tag;\n }\n })();\n }\n tagToken = this.token(tag, id, 0, idLength);\n if (alias) {\n tagToken.origin = [tag, alias, tagToken[2]];\n }\n tagToken.variable = !forcedIdentifier;\n if (poppedToken) {\n ref5 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = ref5[0], tagToken[2].first_column = ref5[1];\n }\n if (colon) {\n colonOffset = input.lastIndexOf(':');\n this.token(':', ':', colonOffset, colon.length);\n }\n return input.length;\n };\n\n Lexer.prototype.numberToken = function() {\n var binaryLiteral, lexedLength, match, number, octalLiteral;\n if (!(match = NUMBER.exec(this.chunk))) {\n return 0;\n }\n number = match[0];\n lexedLength = number.length;\n if (/^0[BOX]/.test(number)) {\n this.error(\"radix prefix in '\" + number + \"' must be lowercase\", {\n offset: 1\n });\n } else if (/E/.test(number) && !/^0x/.test(number)) {\n this.error(\"exponential notation in '\" + number + \"' must be indicated with a lowercase 'e'\", {\n offset: number.indexOf('E')\n });\n } else if (/^0\\d*[89]/.test(number)) {\n this.error(\"decimal literal '\" + number + \"' must not be prefixed with '0'\", {\n length: lexedLength\n });\n } else if (/^0\\d+/.test(number)) {\n this.error(\"octal literal '\" + number + \"' must be prefixed with '0o'\", {\n length: lexedLength\n });\n }\n if (octalLiteral = /^0o([0-7]+)/.exec(number)) {\n number = '0x' + parseInt(octalLiteral[1], 8).toString(16);\n }\n if (binaryLiteral = /^0b([01]+)/.exec(number)) {\n number = '0x' + parseInt(binaryLiteral[1], 2).toString(16);\n }\n this.token('NUMBER', number, 0, lexedLength);\n return lexedLength;\n };\n\n Lexer.prototype.stringToken = function() {\n var $, attempt, delimiter, doc, end, heredoc, i, indent, indentRegex, match, quote, ref2, ref3, regex, token, tokens;\n quote = (STRING_START.exec(this.chunk) || [])[0];\n if (!quote) {\n return 0;\n }\n regex = (function() {\n switch (quote) {\n case \"'\":\n return STRING_SINGLE;\n case '\"':\n return STRING_DOUBLE;\n case \"'''\":\n return HEREDOC_SINGLE;\n case '\"\"\"':\n return HEREDOC_DOUBLE;\n }\n })();\n heredoc = quote.length === 3;\n ref2 = this.matchWithInterpolations(regex, quote), tokens = ref2.tokens, end = ref2.index;\n $ = tokens.length - 1;\n delimiter = quote.charAt(0);\n if (heredoc) {\n indent = null;\n doc = ((function() {\n var j, len, results;\n results = [];\n for (i = j = 0, len = tokens.length; j < len; i = ++j) {\n token = tokens[i];\n if (token[0] === 'NEOSTRING') {\n results.push(token[1]);\n }\n }\n return results;\n })()).join('#{}');\n while (match = HEREDOC_INDENT.exec(doc)) {\n attempt = match[1];\n if (indent === null || (0 < (ref3 = attempt.length) && ref3 < indent.length)) {\n indent = attempt;\n }\n }\n if (indent) {\n indentRegex = RegExp(\"^\" + indent, \"gm\");\n }\n this.mergeInterpolationTokens(tokens, {\n delimiter: delimiter\n }, (function(_this) {\n return function(value, i) {\n value = _this.formatString(value);\n if (i === 0) {\n value = value.replace(LEADING_BLANK_LINE, '');\n }\n if (i === $) {\n value = value.replace(TRAILING_BLANK_LINE, '');\n }\n if (indentRegex) {\n value = value.replace(indentRegex, '');\n }\n return value;\n };\n })(this));\n } else {\n this.mergeInterpolationTokens(tokens, {\n delimiter: delimiter\n }, (function(_this) {\n return function(value, i) {\n value = _this.formatString(value);\n value = value.replace(SIMPLE_STRING_OMIT, function(match, offset) {\n if ((i === 0 && offset === 0) || (i === $ && offset + match.length === value.length)) {\n return '';\n } else {\n return ' ';\n }\n });\n return value;\n };\n })(this));\n }\n return end;\n };\n\n Lexer.prototype.commentToken = function() {\n var comment, here, match;\n if (!(match = this.chunk.match(COMMENT))) {\n return 0;\n }\n comment = match[0], here = match[1];\n if (here) {\n if (match = HERECOMMENT_ILLEGAL.exec(comment)) {\n this.error(\"block comments cannot contain \" + match[0], {\n offset: match.index,\n length: match[0].length\n });\n }\n if (here.indexOf('\\n') >= 0) {\n here = here.replace(RegExp(\"\\\\n\" + (repeat(' ', this.indent)), \"g\"), '\\n');\n }\n this.token('HERECOMMENT', here, 0, comment.length);\n }\n return comment.length;\n };\n\n Lexer.prototype.jsToken = function() {\n var match, script;\n if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) {\n return 0;\n }\n this.token('JS', (script = match[0]).slice(1, -1), 0, script.length);\n return script.length;\n };\n\n Lexer.prototype.regexToken = function() {\n var body, closed, end, flags, index, match, origin, prev, ref2, ref3, ref4, regex, tokens;\n switch (false) {\n case !(match = REGEX_ILLEGAL.exec(this.chunk)):\n this.error(\"regular expressions cannot begin with \" + match[2], {\n offset: match.index + match[1].length\n });\n break;\n case !(match = this.matchWithInterpolations(HEREGEX, '///')):\n tokens = match.tokens, index = match.index;\n break;\n case !(match = REGEX.exec(this.chunk)):\n regex = match[0], body = match[1], closed = match[2];\n this.validateEscapes(body, {\n isRegex: true,\n offsetInChunk: 1\n });\n index = regex.length;\n ref2 = this.tokens, prev = ref2[ref2.length - 1];\n if (prev) {\n if (prev.spaced && (ref3 = prev[0], indexOf.call(CALLABLE, ref3) >= 0)) {\n if (!closed || POSSIBLY_DIVISION.test(regex)) {\n return 0;\n }\n } else if (ref4 = prev[0], indexOf.call(NOT_REGEX, ref4) >= 0) {\n return 0;\n }\n }\n if (!closed) {\n this.error('missing / (unclosed regex)');\n }\n break;\n default:\n return 0;\n }\n flags = REGEX_FLAGS.exec(this.chunk.slice(index))[0];\n end = index + flags.length;\n origin = this.makeToken('REGEX', null, 0, end);\n switch (false) {\n case !!VALID_FLAGS.test(flags):\n this.error(\"invalid regular expression flags \" + flags, {\n offset: index,\n length: flags.length\n });\n break;\n case !(regex || tokens.length === 1):\n if (body == null) {\n body = this.formatHeregex(tokens[0][1]);\n }\n this.token('REGEX', \"\" + (this.makeDelimitedLiteral(body, {\n delimiter: '/'\n })) + flags, 0, end, origin);\n break;\n default:\n this.token('REGEX_START', '(', 0, 0, origin);\n this.token('IDENTIFIER', 'RegExp', 0, 0);\n this.token('CALL_START', '(', 0, 0);\n this.mergeInterpolationTokens(tokens, {\n delimiter: '\"',\n double: true\n }, this.formatHeregex);\n if (flags) {\n this.token(',', ',', index, 0);\n this.token('STRING', '\"' + flags + '\"', index, flags.length);\n }\n this.token(')', ')', end, 0);\n this.token('REGEX_END', ')', end, 0);\n }\n return end;\n };\n\n Lexer.prototype.lineToken = function() {\n var diff, indent, match, noNewlines, size;\n if (!(match = MULTI_DENT.exec(this.chunk))) {\n return 0;\n }\n indent = match[0];\n this.seenFor = false;\n size = indent.length - 1 - indent.lastIndexOf('\\n');\n noNewlines = this.unfinished();\n if (size - this.indebt === this.indent) {\n if (noNewlines) {\n this.suppressNewlines();\n } else {\n this.newlineToken(0);\n }\n return indent.length;\n }\n if (size > this.indent) {\n if (noNewlines) {\n this.indebt = size - this.indent;\n this.suppressNewlines();\n return indent.length;\n }\n if (!this.tokens.length) {\n this.baseIndent = this.indent = size;\n return indent.length;\n }\n diff = size - this.indent + this.outdebt;\n this.token('INDENT', diff, indent.length - size, size);\n this.indents.push(diff);\n this.ends.push({\n tag: 'OUTDENT'\n });\n this.outdebt = this.indebt = 0;\n this.indent = size;\n } else if (size < this.baseIndent) {\n this.error('missing indentation', {\n offset: indent.length\n });\n } else {\n this.indebt = 0;\n this.outdentToken(this.indent - size, noNewlines, indent.length);\n }\n return indent.length;\n };\n\n Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) {\n var decreasedIndent, dent, lastIndent, ref2;\n decreasedIndent = this.indent - moveOut;\n while (moveOut > 0) {\n lastIndent = this.indents[this.indents.length - 1];\n if (!lastIndent) {\n moveOut = 0;\n } else if (lastIndent === this.outdebt) {\n moveOut -= this.outdebt;\n this.outdebt = 0;\n } else if (lastIndent < this.outdebt) {\n this.outdebt -= lastIndent;\n moveOut -= lastIndent;\n } else {\n dent = this.indents.pop() + this.outdebt;\n if (outdentLength && (ref2 = this.chunk[outdentLength], indexOf.call(INDENTABLE_CLOSERS, ref2) >= 0)) {\n decreasedIndent -= dent - moveOut;\n moveOut = dent;\n }\n this.outdebt = 0;\n this.pair('OUTDENT');\n this.token('OUTDENT', moveOut, 0, outdentLength);\n moveOut -= dent;\n }\n }\n if (dent) {\n this.outdebt -= moveOut;\n }\n while (this.value() === ';') {\n this.tokens.pop();\n }\n if (!(this.tag() === 'TERMINATOR' || noNewlines)) {\n this.token('TERMINATOR', '\\n', outdentLength, 0);\n }\n this.indent = decreasedIndent;\n return this;\n };\n\n Lexer.prototype.whitespaceToken = function() {\n var match, nline, prev, ref2;\n if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\\n'))) {\n return 0;\n }\n ref2 = this.tokens, prev = ref2[ref2.length - 1];\n if (prev) {\n prev[match ? 'spaced' : 'newLine'] = true;\n }\n if (match) {\n return match[0].length;\n } else {\n return 0;\n }\n };\n\n Lexer.prototype.newlineToken = function(offset) {\n while (this.value() === ';') {\n this.tokens.pop();\n }\n if (this.tag() !== 'TERMINATOR') {\n this.token('TERMINATOR', '\\n', offset, 0);\n }\n return this;\n };\n\n Lexer.prototype.suppressNewlines = function() {\n if (this.value() === '\\\\') {\n this.tokens.pop();\n }\n return this;\n };\n\n Lexer.prototype.literalToken = function() {\n var match, prev, ref2, ref3, ref4, ref5, ref6, tag, token, value;\n if (match = OPERATOR.exec(this.chunk)) {\n value = match[0];\n if (CODE.test(value)) {\n this.tagParameters();\n }\n } else {\n value = this.chunk.charAt(0);\n }\n tag = value;\n ref2 = this.tokens, prev = ref2[ref2.length - 1];\n if (value === '=' && prev) {\n if (!prev[1].reserved && (ref3 = prev[1], indexOf.call(JS_FORBIDDEN, ref3) >= 0)) {\n if (prev.origin) {\n prev = prev.origin;\n }\n this.error(\"reserved word '\" + prev[1] + \"' can't be assigned\", prev[2]);\n }\n if ((ref4 = prev[1]) === '||' || ref4 === '&&') {\n prev[0] = 'COMPOUND_ASSIGN';\n prev[1] += '=';\n return value.length;\n }\n }\n if (value === ';') {\n this.seenFor = false;\n tag = 'TERMINATOR';\n } else if (indexOf.call(MATH, value) >= 0) {\n tag = 'MATH';\n } else if (indexOf.call(COMPARE, value) >= 0) {\n tag = 'COMPARE';\n } else if (indexOf.call(COMPOUND_ASSIGN, value) >= 0) {\n tag = 'COMPOUND_ASSIGN';\n } else if (indexOf.call(UNARY, value) >= 0) {\n tag = 'UNARY';\n } else if (indexOf.call(UNARY_MATH, value) >= 0) {\n tag = 'UNARY_MATH';\n } else if (indexOf.call(SHIFT, value) >= 0) {\n tag = 'SHIFT';\n } else if (indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) {\n tag = 'LOGIC';\n } else if (prev && !prev.spaced) {\n if (value === '(' && (ref5 = prev[0], indexOf.call(CALLABLE, ref5) >= 0)) {\n if (prev[0] === '?') {\n prev[0] = 'FUNC_EXIST';\n }\n tag = 'CALL_START';\n } else if (value === '[' && (ref6 = prev[0], indexOf.call(INDEXABLE, ref6) >= 0)) {\n tag = 'INDEX_START';\n switch (prev[0]) {\n case '?':\n prev[0] = 'INDEX_SOAK';\n }\n }\n }\n token = this.makeToken(tag, value);\n switch (value) {\n case '(':\n case '{':\n case '[':\n this.ends.push({\n tag: INVERSES[value],\n origin: token\n });\n break;\n case ')':\n case '}':\n case ']':\n this.pair(value);\n }\n this.tokens.push(token);\n return value.length;\n };\n\n Lexer.prototype.tagParameters = function() {\n var i, stack, tok, tokens;\n if (this.tag() !== ')') {\n return this;\n }\n stack = [];\n tokens = this.tokens;\n i = tokens.length;\n tokens[--i][0] = 'PARAM_END';\n while (tok = tokens[--i]) {\n switch (tok[0]) {\n case ')':\n stack.push(tok);\n break;\n case '(':\n case 'CALL_START':\n if (stack.length) {\n stack.pop();\n } else if (tok[0] === '(') {\n tok[0] = 'PARAM_START';\n return this;\n } else {\n return this;\n }\n }\n }\n return this;\n };\n\n Lexer.prototype.closeIndentation = function() {\n return this.outdentToken(this.indent);\n };\n\n Lexer.prototype.matchWithInterpolations = function(regex, delimiter) {\n var close, column, firstToken, index, lastToken, line, nested, offsetInChunk, open, ref2, ref3, ref4, str, strPart, tokens;\n tokens = [];\n offsetInChunk = delimiter.length;\n if (this.chunk.slice(0, offsetInChunk) !== delimiter) {\n return null;\n }\n str = this.chunk.slice(offsetInChunk);\n while (true) {\n strPart = regex.exec(str)[0];\n this.validateEscapes(strPart, {\n isRegex: delimiter.charAt(0) === '/',\n offsetInChunk: offsetInChunk\n });\n tokens.push(this.makeToken('NEOSTRING', strPart, offsetInChunk));\n str = str.slice(strPart.length);\n offsetInChunk += strPart.length;\n if (str.slice(0, 2) !== '#{') {\n break;\n }\n ref2 = this.getLineAndColumnFromChunk(offsetInChunk + 1), line = ref2[0], column = ref2[1];\n ref3 = new Lexer().tokenize(str.slice(1), {\n line: line,\n column: column,\n untilBalanced: true\n }), nested = ref3.tokens, index = ref3.index;\n index += 1;\n open = nested[0], close = nested[nested.length - 1];\n open[0] = open[1] = '(';\n close[0] = close[1] = ')';\n close.origin = ['', 'end of interpolation', close[2]];\n if (((ref4 = nested[1]) != null ? ref4[0] : void 0) === 'TERMINATOR') {\n nested.splice(1, 1);\n }\n tokens.push(['TOKENS', nested]);\n str = str.slice(index);\n offsetInChunk += index;\n }\n if (str.slice(0, delimiter.length) !== delimiter) {\n this.error(\"missing \" + delimiter, {\n length: delimiter.length\n });\n }\n firstToken = tokens[0], lastToken = tokens[tokens.length - 1];\n firstToken[2].first_column -= delimiter.length;\n lastToken[2].last_column += delimiter.length;\n if (lastToken[1].length === 0) {\n lastToken[2].last_column -= 1;\n }\n return {\n tokens: tokens,\n index: offsetInChunk + delimiter.length\n };\n };\n\n Lexer.prototype.mergeInterpolationTokens = function(tokens, options, fn) {\n var converted, firstEmptyStringIndex, firstIndex, i, j, lastToken, len, locationToken, lparen, plusToken, ref2, rparen, tag, token, tokensToPush, value;\n if (tokens.length > 1) {\n lparen = this.token('STRING_START', '(', 0, 0);\n }\n firstIndex = this.tokens.length;\n for (i = j = 0, len = tokens.length; j < len; i = ++j) {\n token = tokens[i];\n tag = token[0], value = token[1];\n switch (tag) {\n case 'TOKENS':\n if (value.length === 2) {\n continue;\n }\n locationToken = value[0];\n tokensToPush = value;\n break;\n case 'NEOSTRING':\n converted = fn(token[1], i);\n if (converted.length === 0) {\n if (i === 0) {\n firstEmptyStringIndex = this.tokens.length;\n } else {\n continue;\n }\n }\n if (i === 2 && (firstEmptyStringIndex != null)) {\n this.tokens.splice(firstEmptyStringIndex, 2);\n }\n token[0] = 'STRING';\n token[1] = this.makeDelimitedLiteral(converted, options);\n locationToken = token;\n tokensToPush = [token];\n }\n if (this.tokens.length > firstIndex) {\n plusToken = this.token('+', '+');\n plusToken[2] = {\n first_line: locationToken[2].first_line,\n first_column: locationToken[2].first_column,\n last_line: locationToken[2].first_line,\n last_column: locationToken[2].first_column\n };\n }\n (ref2 = this.tokens).push.apply(ref2, tokensToPush);\n }\n if (lparen) {\n lastToken = tokens[tokens.length - 1];\n lparen.origin = [\n 'STRING', null, {\n first_line: lparen[2].first_line,\n first_column: lparen[2].first_column,\n last_line: lastToken[2].last_line,\n last_column: lastToken[2].last_column\n }\n ];\n rparen = this.token('STRING_END', ')');\n return rparen[2] = {\n first_line: lastToken[2].last_line,\n first_column: lastToken[2].last_column,\n last_line: lastToken[2].last_line,\n last_column: lastToken[2].last_column\n };\n }\n };\n\n Lexer.prototype.pair = function(tag) {\n var lastIndent, prev, ref2, ref3, wanted;\n ref2 = this.ends, prev = ref2[ref2.length - 1];\n if (tag !== (wanted = prev != null ? prev.tag : void 0)) {\n if ('OUTDENT' !== wanted) {\n this.error(\"unmatched \" + tag);\n }\n ref3 = this.indents, lastIndent = ref3[ref3.length - 1];\n this.outdentToken(lastIndent, true);\n return this.pair(tag);\n }\n return this.ends.pop();\n };\n\n Lexer.prototype.getLineAndColumnFromChunk = function(offset) {\n var column, lastLine, lineCount, ref2, string;\n if (offset === 0) {\n return [this.chunkLine, this.chunkColumn];\n }\n if (offset >= this.chunk.length) {\n string = this.chunk;\n } else {\n string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9);\n }\n lineCount = count(string, '\\n');\n column = this.chunkColumn;\n if (lineCount > 0) {\n ref2 = string.split('\\n'), lastLine = ref2[ref2.length - 1];\n column = lastLine.length;\n } else {\n column += string.length;\n }\n return [this.chunkLine + lineCount, column];\n };\n\n Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) {\n var lastCharacter, locationData, ref2, ref3, token;\n if (offsetInChunk == null) {\n offsetInChunk = 0;\n }\n if (length == null) {\n length = value.length;\n }\n locationData = {};\n ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = ref2[0], locationData.first_column = ref2[1];\n lastCharacter = Math.max(0, length - 1);\n ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = ref3[0], locationData.last_column = ref3[1];\n token = [tag, value, locationData];\n return token;\n };\n\n Lexer.prototype.token = function(tag, value, offsetInChunk, length, origin) {\n var token;\n token = this.makeToken(tag, value, offsetInChunk, length);\n if (origin) {\n token.origin = origin;\n }\n this.tokens.push(token);\n return token;\n };\n\n Lexer.prototype.tag = function() {\n var ref2, token;\n ref2 = this.tokens, token = ref2[ref2.length - 1];\n return token != null ? token[0] : void 0;\n };\n\n Lexer.prototype.value = function() {\n var ref2, token;\n ref2 = this.tokens, token = ref2[ref2.length - 1];\n return token != null ? token[1] : void 0;\n };\n\n Lexer.prototype.unfinished = function() {\n var ref2;\n return LINE_CONTINUER.test(this.chunk) || ((ref2 = this.tag()) === '\\\\' || ref2 === '.' || ref2 === '?.' || ref2 === '?::' || ref2 === 'UNARY' || ref2 === 'MATH' || ref2 === 'UNARY_MATH' || ref2 === '+' || ref2 === '-' || ref2 === 'YIELD' || ref2 === '**' || ref2 === 'SHIFT' || ref2 === 'RELATION' || ref2 === 'COMPARE' || ref2 === 'LOGIC' || ref2 === 'THROW' || ref2 === 'EXTENDS');\n };\n\n Lexer.prototype.formatString = function(str) {\n return str.replace(STRING_OMIT, '$1');\n };\n\n Lexer.prototype.formatHeregex = function(str) {\n return str.replace(HEREGEX_OMIT, '$1$2');\n };\n\n Lexer.prototype.validateEscapes = function(str, options) {\n var before, hex, invalidEscape, match, message, octal, ref2, unicode;\n if (options == null) {\n options = {};\n }\n match = INVALID_ESCAPE.exec(str);\n if (!match) {\n return;\n }\n match[0], before = match[1], octal = match[2], hex = match[3], unicode = match[4];\n if (options.isRegex && octal && octal.charAt(0) !== '0') {\n return;\n }\n message = octal ? \"octal escape sequences are not allowed\" : \"invalid escape sequence\";\n invalidEscape = \"\\\\\" + (octal || hex || unicode);\n return this.error(message + \" \" + invalidEscape, {\n offset: ((ref2 = options.offsetInChunk) != null ? ref2 : 0) + match.index + before.length,\n length: invalidEscape.length\n });\n };\n\n Lexer.prototype.makeDelimitedLiteral = function(body, options) {\n var regex;\n if (options == null) {\n options = {};\n }\n if (body === '' && options.delimiter === '/') {\n body = '(?:)';\n }\n regex = RegExp(\"(\\\\\\\\\\\\\\\\)|(\\\\\\\\0(?=[1-7]))|\\\\\\\\?(\" + options.delimiter + \")|\\\\\\\\?(?:(\\\\n)|(\\\\r)|(\\\\u2028)|(\\\\u2029))|(\\\\\\\\.)\", \"g\");\n body = body.replace(regex, function(match, backslash, nul, delimiter, lf, cr, ls, ps, other) {\n switch (false) {\n case !backslash:\n if (options.double) {\n return backslash + backslash;\n } else {\n return backslash;\n }\n case !nul:\n return '\\\\x00';\n case !delimiter:\n return \"\\\\\" + delimiter;\n case !lf:\n return '\\\\n';\n case !cr:\n return '\\\\r';\n case !ls:\n return '\\\\u2028';\n case !ps:\n return '\\\\u2029';\n case !other:\n if (options.double) {\n return \"\\\\\" + other;\n } else {\n return other;\n }\n }\n });\n return \"\" + options.delimiter + body + options.delimiter;\n };\n\n Lexer.prototype.error = function(message, options) {\n var first_column, first_line, location, ref2, ref3, ref4;\n if (options == null) {\n options = {};\n }\n location = 'first_line' in options ? options : ((ref3 = this.getLineAndColumnFromChunk((ref2 = options.offset) != null ? ref2 : 0), first_line = ref3[0], first_column = ref3[1], ref3), {\n first_line: first_line,\n first_column: first_column,\n last_column: first_column + ((ref4 = options.length) != null ? ref4 : 1) - 1\n });\n return throwSyntaxError(message, location);\n };\n\n return Lexer;\n\n })();\n\n JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'yield', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super'];\n\n COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'];\n\n COFFEE_ALIAS_MAP = {\n and: '&&',\n or: '||',\n is: '==',\n isnt: '!=',\n not: '!',\n yes: 'true',\n no: 'false',\n on: 'true',\n off: 'false'\n };\n\n COFFEE_ALIASES = (function() {\n var results;\n results = [];\n for (key in COFFEE_ALIAS_MAP) {\n results.push(key);\n }\n return results;\n })();\n\n COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES);\n\n RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static'];\n\n STRICT_PROSCRIBED = ['arguments', 'eval', 'yield*'];\n\n JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);\n\n exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED);\n\n exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED;\n\n BOM = 65279;\n\n IDENTIFIER = /^(?!\\d)((?:(?!\\s)[$\\w\\x7f-\\uffff])+)([^\\n\\S]*:(?!:))?/;\n\n NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\\da-f]+|^\\d*\\.?\\d+(?:e[+-]?\\d+)?/i;\n\n OPERATOR = /^(?:[-=]>|[-+*\\/%<>&|^!?=]=|>>>=?|([-+:])\\1|([&|<>*\\/%])\\2=?|\\?(\\.|::)|\\.{2,3})/;\n\n WHITESPACE = /^[^\\n\\S]+/;\n\n COMMENT = /^###([^#][\\s\\S]*?)(?:###[^\\n\\S]*|###$)|^(?:\\s*#(?!##[^#]).*)+/;\n\n CODE = /^[-=]>/;\n\n MULTI_DENT = /^(?:\\n[^\\n\\S]*)+/;\n\n JSTOKEN = /^`[^\\\\`]*(?:\\\\.[^\\\\`]*)*`/;\n\n STRING_START = /^(?:'''|\"\"\"|'|\")/;\n\n STRING_SINGLE = /^(?:[^\\\\']|\\\\[\\s\\S])*/;\n\n STRING_DOUBLE = /^(?:[^\\\\\"#]|\\\\[\\s\\S]|\\#(?!\\{))*/;\n\n HEREDOC_SINGLE = /^(?:[^\\\\']|\\\\[\\s\\S]|'(?!''))*/;\n\n HEREDOC_DOUBLE = /^(?:[^\\\\\"#]|\\\\[\\s\\S]|\"(?!\"\")|\\#(?!\\{))*/;\n\n STRING_OMIT = /((?:\\\\\\\\)+)|\\\\[^\\S\\n]*\\n\\s*/g;\n\n SIMPLE_STRING_OMIT = /\\s*\\n\\s*/g;\n\n HEREDOC_INDENT = /\\n+([^\\n\\S]*)(?=\\S)/g;\n\n REGEX = /^\\/(?!\\/)((?:[^[\\/\\n\\\\]|\\\\[^\\n]|\\[(?:\\\\[^\\n]|[^\\]\\n\\\\])*\\])*)(\\/)?/;\n\n REGEX_FLAGS = /^\\w*/;\n\n VALID_FLAGS = /^(?!.*(.).*\\1)[imgy]*$/;\n\n HEREGEX = /^(?:[^\\\\\\/#]|\\\\[\\s\\S]|\\/(?!\\/\\/)|\\#(?!\\{))*/;\n\n HEREGEX_OMIT = /((?:\\\\\\\\)+)|\\\\(\\s)|\\s+(?:#.*)?/g;\n\n REGEX_ILLEGAL = /^(\\/|\\/{3}\\s*)(\\*)/;\n\n POSSIBLY_DIVISION = /^\\/=?\\s/;\n\n HERECOMMENT_ILLEGAL = /\\*\\//;\n\n LINE_CONTINUER = /^\\s*(?:,|\\??\\.(?![.\\d])|::)/;\n\n INVALID_ESCAPE = /((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\(?:(0[0-7]|[1-7])|(x(?![\\da-fA-F]{2}).{0,2})|(u(?![\\da-fA-F]{4}).{0,4}))/;\n\n LEADING_BLANK_LINE = /^[^\\n\\S]*\\n/;\n\n TRAILING_BLANK_LINE = /\\n[^\\n\\S]*$/;\n\n TRAILING_SPACES = /\\s+$/;\n\n COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|=', '**=', '//=', '%%='];\n\n UNARY = ['NEW', 'TYPEOF', 'DELETE', 'DO'];\n\n UNARY_MATH = ['!', '~'];\n\n LOGIC = ['&&', '||', '&', '|', '^'];\n\n SHIFT = ['<<', '>>', '>>>'];\n\n COMPARE = ['==', '!=', '<', '>', '<=', '>='];\n\n MATH = ['*', '/', '%', '//', '%%'];\n\n RELATION = ['IN', 'OF', 'INSTANCEOF'];\n\n BOOL = ['TRUE', 'FALSE'];\n\n CALLABLE = ['IDENTIFIER', ')', ']', '?', '@', 'THIS', 'SUPER'];\n\n INDEXABLE = CALLABLE.concat(['NUMBER', 'STRING', 'STRING_END', 'REGEX', 'REGEX_END', 'BOOL', 'NULL', 'UNDEFINED', '}', '::']);\n\n NOT_REGEX = INDEXABLE.concat(['++', '--']);\n\n LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'];\n\n INDENTABLE_CLOSERS = [')', '}', ']'];\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var Access, Arr, Assign, Base, Block, Call, Class, Code, CodeFragment, Comment, Existence, Expansion, Extends, For, HEXNUM, IDENTIFIER, IS_REGEX, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, NEGATE, NO, NUMBER, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, isComplexOrAssignable, isLiteralArguments, isLiteralThis, locationDataToString, merge, multident, parseNum, ref1, ref2, some, starts, throwSyntaxError, unfoldSoak, utility,\n extend1 = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n slice = [].slice;\n\n Error.stackTraceLimit = Infinity;\n\n Scope = require('./scope').Scope;\n\n ref1 = require('./lexer'), RESERVED = ref1.RESERVED, STRICT_PROSCRIBED = ref1.STRICT_PROSCRIBED;\n\n ref2 = require('./helpers'), compact = ref2.compact, flatten = ref2.flatten, extend = ref2.extend, merge = ref2.merge, del = ref2.del, starts = ref2.starts, ends = ref2.ends, some = ref2.some, addLocationDataFn = ref2.addLocationDataFn, locationDataToString = ref2.locationDataToString, throwSyntaxError = ref2.throwSyntaxError;\n\n exports.extend = extend;\n\n exports.addLocationDataFn = addLocationDataFn;\n\n YES = function() {\n return true;\n };\n\n NO = function() {\n return false;\n };\n\n THIS = function() {\n return this;\n };\n\n NEGATE = function() {\n this.negated = !this.negated;\n return this;\n };\n\n exports.CodeFragment = CodeFragment = (function() {\n function CodeFragment(parent, code) {\n var ref3;\n this.code = \"\" + code;\n this.locationData = parent != null ? parent.locationData : void 0;\n this.type = (parent != null ? (ref3 = parent.constructor) != null ? ref3.name : void 0 : void 0) || 'unknown';\n }\n\n CodeFragment.prototype.toString = function() {\n return \"\" + this.code + (this.locationData ? \": \" + locationDataToString(this.locationData) : '');\n };\n\n return CodeFragment;\n\n })();\n\n fragmentsToText = function(fragments) {\n var fragment;\n return ((function() {\n var j, len1, results;\n results = [];\n for (j = 0, len1 = fragments.length; j < len1; j++) {\n fragment = fragments[j];\n results.push(fragment.code);\n }\n return results;\n })()).join('');\n };\n\n exports.Base = Base = (function() {\n function Base() {}\n\n Base.prototype.compile = function(o, lvl) {\n return fragmentsToText(this.compileToFragments(o, lvl));\n };\n\n Base.prototype.compileToFragments = function(o, lvl) {\n var node;\n o = extend({}, o);\n if (lvl) {\n o.level = lvl;\n }\n node = this.unfoldSoak(o) || this;\n node.tab = o.indent;\n if (o.level === LEVEL_TOP || !node.isStatement(o)) {\n return node.compileNode(o);\n } else {\n return node.compileClosure(o);\n }\n };\n\n Base.prototype.compileClosure = function(o) {\n var args, argumentsNode, func, jumpNode, meth, parts, ref3;\n if (jumpNode = this.jumps()) {\n jumpNode.error('cannot use a pure statement in an expression');\n }\n o.sharedScope = true;\n func = new Code([], Block.wrap([this]));\n args = [];\n if ((argumentsNode = this.contains(isLiteralArguments)) || this.contains(isLiteralThis)) {\n args = [new Literal('this')];\n if (argumentsNode) {\n meth = 'apply';\n args.push(new Literal('arguments'));\n } else {\n meth = 'call';\n }\n func = new Value(func, [new Access(new Literal(meth))]);\n }\n parts = (new Call(func, args)).compileNode(o);\n if (func.isGenerator || ((ref3 = func.base) != null ? ref3.isGenerator : void 0)) {\n parts.unshift(this.makeCode(\"(yield* \"));\n parts.push(this.makeCode(\")\"));\n }\n return parts;\n };\n\n Base.prototype.cache = function(o, level, isComplex) {\n var complex, ref, sub;\n complex = isComplex != null ? isComplex(this) : this.isComplex();\n if (complex) {\n ref = new Literal(o.scope.freeVariable('ref'));\n sub = new Assign(ref, this);\n if (level) {\n return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]];\n } else {\n return [sub, ref];\n }\n } else {\n ref = level ? this.compileToFragments(o, level) : this;\n return [ref, ref];\n }\n };\n\n Base.prototype.cacheToCodeFragments = function(cacheValues) {\n return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])];\n };\n\n Base.prototype.makeReturn = function(res) {\n var me;\n me = this.unwrapAll();\n if (res) {\n return new Call(new Literal(res + \".push\"), [me]);\n } else {\n return new Return(me);\n }\n };\n\n Base.prototype.contains = function(pred) {\n var node;\n node = void 0;\n this.traverseChildren(false, function(n) {\n if (pred(n)) {\n node = n;\n return false;\n }\n });\n return node;\n };\n\n Base.prototype.lastNonComment = function(list) {\n var i;\n i = list.length;\n while (i--) {\n if (!(list[i] instanceof Comment)) {\n return list[i];\n }\n }\n return null;\n };\n\n Base.prototype.toString = function(idt, name) {\n var tree;\n if (idt == null) {\n idt = '';\n }\n if (name == null) {\n name = this.constructor.name;\n }\n tree = '\\n' + idt + name;\n if (this.soak) {\n tree += '?';\n }\n this.eachChild(function(node) {\n return tree += node.toString(idt + TAB);\n });\n return tree;\n };\n\n Base.prototype.eachChild = function(func) {\n var attr, child, j, k, len1, len2, ref3, ref4;\n if (!this.children) {\n return this;\n }\n ref3 = this.children;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n attr = ref3[j];\n if (this[attr]) {\n ref4 = flatten([this[attr]]);\n for (k = 0, len2 = ref4.length; k < len2; k++) {\n child = ref4[k];\n if (func(child) === false) {\n return this;\n }\n }\n }\n }\n return this;\n };\n\n Base.prototype.traverseChildren = function(crossScope, func) {\n return this.eachChild(function(child) {\n var recur;\n recur = func(child);\n if (recur !== false) {\n return child.traverseChildren(crossScope, func);\n }\n });\n };\n\n Base.prototype.invert = function() {\n return new Op('!', this);\n };\n\n Base.prototype.unwrapAll = function() {\n var node;\n node = this;\n while (node !== (node = node.unwrap())) {\n continue;\n }\n return node;\n };\n\n Base.prototype.children = [];\n\n Base.prototype.isStatement = NO;\n\n Base.prototype.jumps = NO;\n\n Base.prototype.isComplex = YES;\n\n Base.prototype.isChainable = NO;\n\n Base.prototype.isAssignable = NO;\n\n Base.prototype.unwrap = THIS;\n\n Base.prototype.unfoldSoak = NO;\n\n Base.prototype.assigns = NO;\n\n Base.prototype.updateLocationDataIfMissing = function(locationData) {\n if (this.locationData) {\n return this;\n }\n this.locationData = locationData;\n return this.eachChild(function(child) {\n return child.updateLocationDataIfMissing(locationData);\n });\n };\n\n Base.prototype.error = function(message) {\n return throwSyntaxError(message, this.locationData);\n };\n\n Base.prototype.makeCode = function(code) {\n return new CodeFragment(this, code);\n };\n\n Base.prototype.wrapInBraces = function(fragments) {\n return [].concat(this.makeCode('('), fragments, this.makeCode(')'));\n };\n\n Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) {\n var answer, fragments, i, j, len1;\n answer = [];\n for (i = j = 0, len1 = fragmentsList.length; j < len1; i = ++j) {\n fragments = fragmentsList[i];\n if (i) {\n answer.push(this.makeCode(joinStr));\n }\n answer = answer.concat(fragments);\n }\n return answer;\n };\n\n return Base;\n\n })();\n\n exports.Block = Block = (function(superClass1) {\n extend1(Block, superClass1);\n\n function Block(nodes) {\n this.expressions = compact(flatten(nodes || []));\n }\n\n Block.prototype.children = ['expressions'];\n\n Block.prototype.push = function(node) {\n this.expressions.push(node);\n return this;\n };\n\n Block.prototype.pop = function() {\n return this.expressions.pop();\n };\n\n Block.prototype.unshift = function(node) {\n this.expressions.unshift(node);\n return this;\n };\n\n Block.prototype.unwrap = function() {\n if (this.expressions.length === 1) {\n return this.expressions[0];\n } else {\n return this;\n }\n };\n\n Block.prototype.isEmpty = function() {\n return !this.expressions.length;\n };\n\n Block.prototype.isStatement = function(o) {\n var exp, j, len1, ref3;\n ref3 = this.expressions;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n exp = ref3[j];\n if (exp.isStatement(o)) {\n return true;\n }\n }\n return false;\n };\n\n Block.prototype.jumps = function(o) {\n var exp, j, jumpNode, len1, ref3;\n ref3 = this.expressions;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n exp = ref3[j];\n if (jumpNode = exp.jumps(o)) {\n return jumpNode;\n }\n }\n };\n\n Block.prototype.makeReturn = function(res) {\n var expr, len;\n len = this.expressions.length;\n while (len--) {\n expr = this.expressions[len];\n if (!(expr instanceof Comment)) {\n this.expressions[len] = expr.makeReturn(res);\n if (expr instanceof Return && !expr.expression) {\n this.expressions.splice(len, 1);\n }\n break;\n }\n }\n return this;\n };\n\n Block.prototype.compileToFragments = function(o, level) {\n if (o == null) {\n o = {};\n }\n if (o.scope) {\n return Block.__super__.compileToFragments.call(this, o, level);\n } else {\n return this.compileRoot(o);\n }\n };\n\n Block.prototype.compileNode = function(o) {\n var answer, compiledNodes, fragments, index, j, len1, node, ref3, top;\n this.tab = o.indent;\n top = o.level === LEVEL_TOP;\n compiledNodes = [];\n ref3 = this.expressions;\n for (index = j = 0, len1 = ref3.length; j < len1; index = ++j) {\n node = ref3[index];\n node = node.unwrapAll();\n node = node.unfoldSoak(o) || node;\n if (node instanceof Block) {\n compiledNodes.push(node.compileNode(o));\n } else if (top) {\n node.front = true;\n fragments = node.compileToFragments(o);\n if (!node.isStatement(o)) {\n fragments.unshift(this.makeCode(\"\" + this.tab));\n fragments.push(this.makeCode(\";\"));\n }\n compiledNodes.push(fragments);\n } else {\n compiledNodes.push(node.compileToFragments(o, LEVEL_LIST));\n }\n }\n if (top) {\n if (this.spaced) {\n return [].concat(this.joinFragmentArrays(compiledNodes, '\\n\\n'), this.makeCode(\"\\n\"));\n } else {\n return this.joinFragmentArrays(compiledNodes, '\\n');\n }\n }\n if (compiledNodes.length) {\n answer = this.joinFragmentArrays(compiledNodes, ', ');\n } else {\n answer = [this.makeCode(\"void 0\")];\n }\n if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) {\n return this.wrapInBraces(answer);\n } else {\n return answer;\n }\n };\n\n Block.prototype.compileRoot = function(o) {\n var exp, fragments, i, j, len1, name, prelude, preludeExps, ref3, ref4, rest;\n o.indent = o.bare ? '' : TAB;\n o.level = LEVEL_TOP;\n this.spaced = true;\n o.scope = new Scope(null, this, null, (ref3 = o.referencedVars) != null ? ref3 : []);\n ref4 = o.locals || [];\n for (j = 0, len1 = ref4.length; j < len1; j++) {\n name = ref4[j];\n o.scope.parameter(name);\n }\n prelude = [];\n if (!o.bare) {\n preludeExps = (function() {\n var k, len2, ref5, results;\n ref5 = this.expressions;\n results = [];\n for (i = k = 0, len2 = ref5.length; k < len2; i = ++k) {\n exp = ref5[i];\n if (!(exp.unwrap() instanceof Comment)) {\n break;\n }\n results.push(exp);\n }\n return results;\n }).call(this);\n rest = this.expressions.slice(preludeExps.length);\n this.expressions = preludeExps;\n if (preludeExps.length) {\n prelude = this.compileNode(merge(o, {\n indent: ''\n }));\n prelude.push(this.makeCode(\"\\n\"));\n }\n this.expressions = rest;\n }\n fragments = this.compileWithDeclarations(o);\n if (o.bare) {\n return fragments;\n }\n return [].concat(prelude, this.makeCode(\"(function() {\\n\"), fragments, this.makeCode(\"\\n}).call(this);\\n\"));\n };\n\n Block.prototype.compileWithDeclarations = function(o) {\n var assigns, declars, exp, fragments, i, j, len1, post, ref3, ref4, ref5, rest, scope, spaced;\n fragments = [];\n post = [];\n ref3 = this.expressions;\n for (i = j = 0, len1 = ref3.length; j < len1; i = ++j) {\n exp = ref3[i];\n exp = exp.unwrap();\n if (!(exp instanceof Comment || exp instanceof Literal)) {\n break;\n }\n }\n o = merge(o, {\n level: LEVEL_TOP\n });\n if (i) {\n rest = this.expressions.splice(i, 9e9);\n ref4 = [this.spaced, false], spaced = ref4[0], this.spaced = ref4[1];\n ref5 = [this.compileNode(o), spaced], fragments = ref5[0], this.spaced = ref5[1];\n this.expressions = rest;\n }\n post = this.compileNode(o);\n scope = o.scope;\n if (scope.expressions === this) {\n declars = o.scope.hasDeclarations();\n assigns = scope.hasAssignments;\n if (declars || assigns) {\n if (i) {\n fragments.push(this.makeCode('\\n'));\n }\n fragments.push(this.makeCode(this.tab + \"var \"));\n if (declars) {\n fragments.push(this.makeCode(scope.declaredVariables().join(', ')));\n }\n if (assigns) {\n if (declars) {\n fragments.push(this.makeCode(\",\\n\" + (this.tab + TAB)));\n }\n fragments.push(this.makeCode(scope.assignedVariables().join(\",\\n\" + (this.tab + TAB))));\n }\n fragments.push(this.makeCode(\";\\n\" + (this.spaced ? '\\n' : '')));\n } else if (fragments.length && post.length) {\n fragments.push(this.makeCode(\"\\n\"));\n }\n }\n return fragments.concat(post);\n };\n\n Block.wrap = function(nodes) {\n if (nodes.length === 1 && nodes[0] instanceof Block) {\n return nodes[0];\n }\n return new Block(nodes);\n };\n\n return Block;\n\n })(Base);\n\n exports.Literal = Literal = (function(superClass1) {\n extend1(Literal, superClass1);\n\n function Literal(value1) {\n this.value = value1;\n }\n\n Literal.prototype.makeReturn = function() {\n if (this.isStatement()) {\n return this;\n } else {\n return Literal.__super__.makeReturn.apply(this, arguments);\n }\n };\n\n Literal.prototype.isAssignable = function() {\n return IDENTIFIER.test(this.value);\n };\n\n Literal.prototype.isStatement = function() {\n var ref3;\n return (ref3 = this.value) === 'break' || ref3 === 'continue' || ref3 === 'debugger';\n };\n\n Literal.prototype.isComplex = NO;\n\n Literal.prototype.assigns = function(name) {\n return name === this.value;\n };\n\n Literal.prototype.jumps = function(o) {\n if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {\n return this;\n }\n if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {\n return this;\n }\n };\n\n Literal.prototype.compileNode = function(o) {\n var answer, code, ref3;\n code = this.value === 'this' ? ((ref3 = o.scope.method) != null ? ref3.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? \"\\\"\" + this.value + \"\\\"\" : this.value;\n answer = this.isStatement() ? \"\" + this.tab + code + \";\" : code;\n return [this.makeCode(answer)];\n };\n\n Literal.prototype.toString = function() {\n return ' \"' + this.value + '\"';\n };\n\n return Literal;\n\n })(Base);\n\n exports.Undefined = (function(superClass1) {\n extend1(Undefined, superClass1);\n\n function Undefined() {\n return Undefined.__super__.constructor.apply(this, arguments);\n }\n\n Undefined.prototype.isAssignable = NO;\n\n Undefined.prototype.isComplex = NO;\n\n Undefined.prototype.compileNode = function(o) {\n return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')];\n };\n\n return Undefined;\n\n })(Base);\n\n exports.Null = (function(superClass1) {\n extend1(Null, superClass1);\n\n function Null() {\n return Null.__super__.constructor.apply(this, arguments);\n }\n\n Null.prototype.isAssignable = NO;\n\n Null.prototype.isComplex = NO;\n\n Null.prototype.compileNode = function() {\n return [this.makeCode(\"null\")];\n };\n\n return Null;\n\n })(Base);\n\n exports.Bool = (function(superClass1) {\n extend1(Bool, superClass1);\n\n Bool.prototype.isAssignable = NO;\n\n Bool.prototype.isComplex = NO;\n\n Bool.prototype.compileNode = function() {\n return [this.makeCode(this.val)];\n };\n\n function Bool(val1) {\n this.val = val1;\n }\n\n return Bool;\n\n })(Base);\n\n exports.Return = Return = (function(superClass1) {\n extend1(Return, superClass1);\n\n function Return(expression) {\n this.expression = expression;\n }\n\n Return.prototype.children = ['expression'];\n\n Return.prototype.isStatement = YES;\n\n Return.prototype.makeReturn = THIS;\n\n Return.prototype.jumps = THIS;\n\n Return.prototype.compileToFragments = function(o, level) {\n var expr, ref3;\n expr = (ref3 = this.expression) != null ? ref3.makeReturn() : void 0;\n if (expr && !(expr instanceof Return)) {\n return expr.compileToFragments(o, level);\n } else {\n return Return.__super__.compileToFragments.call(this, o, level);\n }\n };\n\n Return.prototype.compileNode = function(o) {\n var answer, exprIsYieldReturn, ref3;\n answer = [];\n exprIsYieldReturn = (ref3 = this.expression) != null ? typeof ref3.isYieldReturn === \"function\" ? ref3.isYieldReturn() : void 0 : void 0;\n if (!exprIsYieldReturn) {\n answer.push(this.makeCode(this.tab + (\"return\" + (this.expression ? \" \" : \"\"))));\n }\n if (this.expression) {\n answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN));\n }\n if (!exprIsYieldReturn) {\n answer.push(this.makeCode(\";\"));\n }\n return answer;\n };\n\n return Return;\n\n })(Base);\n\n exports.Value = Value = (function(superClass1) {\n extend1(Value, superClass1);\n\n function Value(base, props, tag) {\n if (!props && base instanceof Value) {\n return base;\n }\n this.base = base;\n this.properties = props || [];\n if (tag) {\n this[tag] = true;\n }\n return this;\n }\n\n Value.prototype.children = ['base', 'properties'];\n\n Value.prototype.add = function(props) {\n this.properties = this.properties.concat(props);\n return this;\n };\n\n Value.prototype.hasProperties = function() {\n return !!this.properties.length;\n };\n\n Value.prototype.bareLiteral = function(type) {\n return !this.properties.length && this.base instanceof type;\n };\n\n Value.prototype.isArray = function() {\n return this.bareLiteral(Arr);\n };\n\n Value.prototype.isRange = function() {\n return this.bareLiteral(Range);\n };\n\n Value.prototype.isComplex = function() {\n return this.hasProperties() || this.base.isComplex();\n };\n\n Value.prototype.isAssignable = function() {\n return this.hasProperties() || this.base.isAssignable();\n };\n\n Value.prototype.isSimpleNumber = function() {\n return this.bareLiteral(Literal) && SIMPLENUM.test(this.base.value);\n };\n\n Value.prototype.isString = function() {\n return this.bareLiteral(Literal) && IS_STRING.test(this.base.value);\n };\n\n Value.prototype.isRegex = function() {\n return this.bareLiteral(Literal) && IS_REGEX.test(this.base.value);\n };\n\n Value.prototype.isAtomic = function() {\n var j, len1, node, ref3;\n ref3 = this.properties.concat(this.base);\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n node = ref3[j];\n if (node.soak || node instanceof Call) {\n return false;\n }\n }\n return true;\n };\n\n Value.prototype.isNotCallable = function() {\n return this.isSimpleNumber() || this.isString() || this.isRegex() || this.isArray() || this.isRange() || this.isSplice() || this.isObject();\n };\n\n Value.prototype.isStatement = function(o) {\n return !this.properties.length && this.base.isStatement(o);\n };\n\n Value.prototype.assigns = function(name) {\n return !this.properties.length && this.base.assigns(name);\n };\n\n Value.prototype.jumps = function(o) {\n return !this.properties.length && this.base.jumps(o);\n };\n\n Value.prototype.isObject = function(onlyGenerated) {\n if (this.properties.length) {\n return false;\n }\n return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);\n };\n\n Value.prototype.isSplice = function() {\n var lastProp, ref3;\n ref3 = this.properties, lastProp = ref3[ref3.length - 1];\n return lastProp instanceof Slice;\n };\n\n Value.prototype.looksStatic = function(className) {\n var ref3;\n return this.base.value === className && this.properties.length === 1 && ((ref3 = this.properties[0].name) != null ? ref3.value : void 0) !== 'prototype';\n };\n\n Value.prototype.unwrap = function() {\n if (this.properties.length) {\n return this;\n } else {\n return this.base;\n }\n };\n\n Value.prototype.cacheReference = function(o) {\n var base, bref, name, nref, ref3;\n ref3 = this.properties, name = ref3[ref3.length - 1];\n if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {\n return [this, this];\n }\n base = new Value(this.base, this.properties.slice(0, -1));\n if (base.isComplex()) {\n bref = new Literal(o.scope.freeVariable('base'));\n base = new Value(new Parens(new Assign(bref, base)));\n }\n if (!name) {\n return [base, bref];\n }\n if (name.isComplex()) {\n nref = new Literal(o.scope.freeVariable('name'));\n name = new Index(new Assign(nref, name.index));\n nref = new Index(nref);\n }\n return [base.add(name), new Value(bref || base.base, [nref || name])];\n };\n\n Value.prototype.compileNode = function(o) {\n var fragments, j, len1, prop, props;\n this.base.front = this.front;\n props = this.properties;\n fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null));\n if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) {\n fragments.push(this.makeCode('.'));\n }\n for (j = 0, len1 = props.length; j < len1; j++) {\n prop = props[j];\n fragments.push.apply(fragments, prop.compileToFragments(o));\n }\n return fragments;\n };\n\n Value.prototype.unfoldSoak = function(o) {\n return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function(_this) {\n return function() {\n var fst, i, ifn, j, len1, prop, ref, ref3, ref4, snd;\n if (ifn = _this.base.unfoldSoak(o)) {\n (ref3 = ifn.body.properties).push.apply(ref3, _this.properties);\n return ifn;\n }\n ref4 = _this.properties;\n for (i = j = 0, len1 = ref4.length; j < len1; i = ++j) {\n prop = ref4[i];\n if (!prop.soak) {\n continue;\n }\n prop.soak = false;\n fst = new Value(_this.base, _this.properties.slice(0, i));\n snd = new Value(_this.base, _this.properties.slice(i));\n if (fst.isComplex()) {\n ref = new Literal(o.scope.freeVariable('ref'));\n fst = new Parens(new Assign(ref, fst));\n snd.base = ref;\n }\n return new If(new Existence(fst), snd, {\n soak: true\n });\n }\n return false;\n };\n })(this)();\n };\n\n return Value;\n\n })(Base);\n\n exports.Comment = Comment = (function(superClass1) {\n extend1(Comment, superClass1);\n\n function Comment(comment1) {\n this.comment = comment1;\n }\n\n Comment.prototype.isStatement = YES;\n\n Comment.prototype.makeReturn = THIS;\n\n Comment.prototype.compileNode = function(o, level) {\n var code, comment;\n comment = this.comment.replace(/^(\\s*)#(?=\\s)/gm, \"$1 *\");\n code = \"/*\" + (multident(comment, this.tab)) + (indexOf.call(comment, '\\n') >= 0 ? \"\\n\" + this.tab : '') + \" */\";\n if ((level || o.level) === LEVEL_TOP) {\n code = o.indent + code;\n }\n return [this.makeCode(\"\\n\"), this.makeCode(code)];\n };\n\n return Comment;\n\n })(Base);\n\n exports.Call = Call = (function(superClass1) {\n extend1(Call, superClass1);\n\n function Call(variable, args1, soak) {\n this.args = args1 != null ? args1 : [];\n this.soak = soak;\n this.isNew = false;\n this.isSuper = variable === 'super';\n this.variable = this.isSuper ? null : variable;\n if (variable instanceof Value && variable.isNotCallable()) {\n variable.error(\"literal is not a function\");\n }\n }\n\n Call.prototype.children = ['variable', 'args'];\n\n Call.prototype.newInstance = function() {\n var base, ref3;\n base = ((ref3 = this.variable) != null ? ref3.base : void 0) || this.variable;\n if (base instanceof Call && !base.isNew) {\n base.newInstance();\n } else {\n this.isNew = true;\n }\n return this;\n };\n\n Call.prototype.superReference = function(o) {\n var accesses, base, bref, klass, method, name, nref, variable;\n method = o.scope.namedMethod();\n if (method != null ? method.klass : void 0) {\n klass = method.klass, name = method.name, variable = method.variable;\n if (klass.isComplex()) {\n bref = new Literal(o.scope.parent.freeVariable('base'));\n base = new Value(new Parens(new Assign(bref, klass)));\n variable.base = base;\n variable.properties.splice(0, klass.properties.length);\n }\n if (name.isComplex() || (name instanceof Index && name.index.isAssignable())) {\n nref = new Literal(o.scope.parent.freeVariable('name'));\n name = new Index(new Assign(nref, name.index));\n variable.properties.pop();\n variable.properties.push(name);\n }\n accesses = [new Access(new Literal('__super__'))];\n if (method[\"static\"]) {\n accesses.push(new Access(new Literal('constructor')));\n }\n accesses.push(nref != null ? new Index(nref) : name);\n return (new Value(bref != null ? bref : klass, accesses)).compile(o);\n } else if (method != null ? method.ctor : void 0) {\n return method.name + \".__super__.constructor\";\n } else {\n return this.error('cannot call super outside of an instance method.');\n }\n };\n\n Call.prototype.superThis = function(o) {\n var method;\n method = o.scope.method;\n return (method && !method.klass && method.context) || \"this\";\n };\n\n Call.prototype.unfoldSoak = function(o) {\n var call, ifn, j, left, len1, list, ref3, ref4, rite;\n if (this.soak) {\n if (this.variable) {\n if (ifn = unfoldSoak(o, this, 'variable')) {\n return ifn;\n }\n ref3 = new Value(this.variable).cacheReference(o), left = ref3[0], rite = ref3[1];\n } else {\n left = new Literal(this.superReference(o));\n rite = new Value(left);\n }\n rite = new Call(rite, this.args);\n rite.isNew = this.isNew;\n left = new Literal(\"typeof \" + (left.compile(o)) + \" === \\\"function\\\"\");\n return new If(left, new Value(rite), {\n soak: true\n });\n }\n call = this;\n list = [];\n while (true) {\n if (call.variable instanceof Call) {\n list.push(call);\n call = call.variable;\n continue;\n }\n if (!(call.variable instanceof Value)) {\n break;\n }\n list.push(call);\n if (!((call = call.variable.base) instanceof Call)) {\n break;\n }\n }\n ref4 = list.reverse();\n for (j = 0, len1 = ref4.length; j < len1; j++) {\n call = ref4[j];\n if (ifn) {\n if (call.variable instanceof Call) {\n call.variable = ifn;\n } else {\n call.variable.base = ifn;\n }\n }\n ifn = unfoldSoak(o, call, 'variable');\n }\n return ifn;\n };\n\n Call.prototype.compileNode = function(o) {\n var arg, argIndex, compiledArgs, compiledArray, fragments, j, len1, preface, ref3, ref4;\n if ((ref3 = this.variable) != null) {\n ref3.front = this.front;\n }\n compiledArray = Splat.compileSplattedArray(o, this.args, true);\n if (compiledArray.length) {\n return this.compileSplat(o, compiledArray);\n }\n compiledArgs = [];\n ref4 = this.args;\n for (argIndex = j = 0, len1 = ref4.length; j < len1; argIndex = ++j) {\n arg = ref4[argIndex];\n if (argIndex) {\n compiledArgs.push(this.makeCode(\", \"));\n }\n compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST));\n }\n fragments = [];\n if (this.isSuper) {\n preface = this.superReference(o) + (\".call(\" + (this.superThis(o)));\n if (compiledArgs.length) {\n preface += \", \";\n }\n fragments.push(this.makeCode(preface));\n } else {\n if (this.isNew) {\n fragments.push(this.makeCode('new '));\n }\n fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS));\n fragments.push(this.makeCode(\"(\"));\n }\n fragments.push.apply(fragments, compiledArgs);\n fragments.push(this.makeCode(\")\"));\n return fragments;\n };\n\n Call.prototype.compileSplat = function(o, splatArgs) {\n var answer, base, fun, idt, name, ref;\n if (this.isSuper) {\n return [].concat(this.makeCode((this.superReference(o)) + \".apply(\" + (this.superThis(o)) + \", \"), splatArgs, this.makeCode(\")\"));\n }\n if (this.isNew) {\n idt = this.tab + TAB;\n return [].concat(this.makeCode(\"(function(func, args, ctor) {\\n\" + idt + \"ctor.prototype = func.prototype;\\n\" + idt + \"var child = new ctor, result = func.apply(child, args);\\n\" + idt + \"return Object(result) === result ? result : child;\\n\" + this.tab + \"})(\"), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(\", \"), splatArgs, this.makeCode(\", function(){})\"));\n }\n answer = [];\n base = new Value(this.variable);\n if ((name = base.properties.pop()) && base.isComplex()) {\n ref = o.scope.freeVariable('ref');\n answer = answer.concat(this.makeCode(\"(\" + ref + \" = \"), base.compileToFragments(o, LEVEL_LIST), this.makeCode(\")\"), name.compileToFragments(o));\n } else {\n fun = base.compileToFragments(o, LEVEL_ACCESS);\n if (SIMPLENUM.test(fragmentsToText(fun))) {\n fun = this.wrapInBraces(fun);\n }\n if (name) {\n ref = fragmentsToText(fun);\n fun.push.apply(fun, name.compileToFragments(o));\n } else {\n ref = 'null';\n }\n answer = answer.concat(fun);\n }\n return answer = answer.concat(this.makeCode(\".apply(\" + ref + \", \"), splatArgs, this.makeCode(\")\"));\n };\n\n return Call;\n\n })(Base);\n\n exports.Extends = Extends = (function(superClass1) {\n extend1(Extends, superClass1);\n\n function Extends(child1, parent1) {\n this.child = child1;\n this.parent = parent1;\n }\n\n Extends.prototype.children = ['child', 'parent'];\n\n Extends.prototype.compileToFragments = function(o) {\n return new Call(new Value(new Literal(utility('extend', o))), [this.child, this.parent]).compileToFragments(o);\n };\n\n return Extends;\n\n })(Base);\n\n exports.Access = Access = (function(superClass1) {\n extend1(Access, superClass1);\n\n function Access(name1, tag) {\n this.name = name1;\n this.name.asKey = true;\n this.soak = tag === 'soak';\n }\n\n Access.prototype.children = ['name'];\n\n Access.prototype.compileToFragments = function(o) {\n var name;\n name = this.name.compileToFragments(o);\n if (IDENTIFIER.test(fragmentsToText(name))) {\n name.unshift(this.makeCode(\".\"));\n } else {\n name.unshift(this.makeCode(\"[\"));\n name.push(this.makeCode(\"]\"));\n }\n return name;\n };\n\n Access.prototype.isComplex = NO;\n\n return Access;\n\n })(Base);\n\n exports.Index = Index = (function(superClass1) {\n extend1(Index, superClass1);\n\n function Index(index1) {\n this.index = index1;\n }\n\n Index.prototype.children = ['index'];\n\n Index.prototype.compileToFragments = function(o) {\n return [].concat(this.makeCode(\"[\"), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode(\"]\"));\n };\n\n Index.prototype.isComplex = function() {\n return this.index.isComplex();\n };\n\n return Index;\n\n })(Base);\n\n exports.Range = Range = (function(superClass1) {\n extend1(Range, superClass1);\n\n Range.prototype.children = ['from', 'to'];\n\n function Range(from1, to1, tag) {\n this.from = from1;\n this.to = to1;\n this.exclusive = tag === 'exclusive';\n this.equals = this.exclusive ? '' : '=';\n }\n\n Range.prototype.compileVariables = function(o) {\n var isComplex, ref3, ref4, ref5, ref6, step;\n o = merge(o, {\n top: true\n });\n isComplex = del(o, 'isComplex');\n ref3 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST, isComplex)), this.fromC = ref3[0], this.fromVar = ref3[1];\n ref4 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST, isComplex)), this.toC = ref4[0], this.toVar = ref4[1];\n if (step = del(o, 'step')) {\n ref5 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST, isComplex)), this.step = ref5[0], this.stepVar = ref5[1];\n }\n ref6 = [this.fromVar.match(NUMBER), this.toVar.match(NUMBER)], this.fromNum = ref6[0], this.toNum = ref6[1];\n if (this.stepVar) {\n return this.stepNum = this.stepVar.match(NUMBER);\n }\n };\n\n Range.prototype.compileNode = function(o) {\n var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, ref3, ref4, stepPart, to, varPart;\n if (!this.fromVar) {\n this.compileVariables(o);\n }\n if (!o.index) {\n return this.compileArray(o);\n }\n known = this.fromNum && this.toNum;\n idx = del(o, 'index');\n idxName = del(o, 'name');\n namedIndex = idxName && idxName !== idx;\n varPart = idx + \" = \" + this.fromC;\n if (this.toC !== this.toVar) {\n varPart += \", \" + this.toC;\n }\n if (this.step !== this.stepVar) {\n varPart += \", \" + this.step;\n }\n ref3 = [idx + \" <\" + this.equals, idx + \" >\" + this.equals], lt = ref3[0], gt = ref3[1];\n condPart = this.stepNum ? parseNum(this.stepNum[0]) > 0 ? lt + \" \" + this.toVar : gt + \" \" + this.toVar : known ? ((ref4 = [parseNum(this.fromNum[0]), parseNum(this.toNum[0])], from = ref4[0], to = ref4[1], ref4), from <= to ? lt + \" \" + to : gt + \" \" + to) : (cond = this.stepVar ? this.stepVar + \" > 0\" : this.fromVar + \" <= \" + this.toVar, cond + \" ? \" + lt + \" \" + this.toVar + \" : \" + gt + \" \" + this.toVar);\n stepPart = this.stepVar ? idx + \" += \" + this.stepVar : known ? namedIndex ? from <= to ? \"++\" + idx : \"--\" + idx : from <= to ? idx + \"++\" : idx + \"--\" : namedIndex ? cond + \" ? ++\" + idx + \" : --\" + idx : cond + \" ? \" + idx + \"++ : \" + idx + \"--\";\n if (namedIndex) {\n varPart = idxName + \" = \" + varPart;\n }\n if (namedIndex) {\n stepPart = idxName + \" = \" + stepPart;\n }\n return [this.makeCode(varPart + \"; \" + condPart + \"; \" + stepPart)];\n };\n\n Range.prototype.compileArray = function(o) {\n var args, body, cond, hasArgs, i, idt, j, post, pre, range, ref3, ref4, result, results, vars;\n if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {\n range = (function() {\n results = [];\n for (var j = ref3 = +this.fromNum, ref4 = +this.toNum; ref3 <= ref4 ? j <= ref4 : j >= ref4; ref3 <= ref4 ? j++ : j--){ results.push(j); }\n return results;\n }).apply(this);\n if (this.exclusive) {\n range.pop();\n }\n return [this.makeCode(\"[\" + (range.join(', ')) + \"]\")];\n }\n idt = this.tab + TAB;\n i = o.scope.freeVariable('i', {\n single: true\n });\n result = o.scope.freeVariable('results');\n pre = \"\\n\" + idt + result + \" = [];\";\n if (this.fromNum && this.toNum) {\n o.index = i;\n body = fragmentsToText(this.compileNode(o));\n } else {\n vars = (i + \" = \" + this.fromC) + (this.toC !== this.toVar ? \", \" + this.toC : '');\n cond = this.fromVar + \" <= \" + this.toVar;\n body = \"var \" + vars + \"; \" + cond + \" ? \" + i + \" <\" + this.equals + \" \" + this.toVar + \" : \" + i + \" >\" + this.equals + \" \" + this.toVar + \"; \" + cond + \" ? \" + i + \"++ : \" + i + \"--\";\n }\n post = \"{ \" + result + \".push(\" + i + \"); }\\n\" + idt + \"return \" + result + \";\\n\" + o.indent;\n hasArgs = function(node) {\n return node != null ? node.contains(isLiteralArguments) : void 0;\n };\n if (hasArgs(this.from) || hasArgs(this.to)) {\n args = ', arguments';\n }\n return [this.makeCode(\"(function() {\" + pre + \"\\n\" + idt + \"for (\" + body + \")\" + post + \"}).apply(this\" + (args != null ? args : '') + \")\")];\n };\n\n return Range;\n\n })(Base);\n\n exports.Slice = Slice = (function(superClass1) {\n extend1(Slice, superClass1);\n\n Slice.prototype.children = ['range'];\n\n function Slice(range1) {\n this.range = range1;\n Slice.__super__.constructor.call(this);\n }\n\n Slice.prototype.compileNode = function(o) {\n var compiled, compiledText, from, fromCompiled, ref3, to, toStr;\n ref3 = this.range, to = ref3.to, from = ref3.from;\n fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')];\n if (to) {\n compiled = to.compileToFragments(o, LEVEL_PAREN);\n compiledText = fragmentsToText(compiled);\n if (!(!this.range.exclusive && +compiledText === -1)) {\n toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? \"\" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), \"+\" + (fragmentsToText(compiled)) + \" + 1 || 9e9\"));\n }\n }\n return [this.makeCode(\".slice(\" + (fragmentsToText(fromCompiled)) + (toStr || '') + \")\")];\n };\n\n return Slice;\n\n })(Base);\n\n exports.Obj = Obj = (function(superClass1) {\n extend1(Obj, superClass1);\n\n function Obj(props, generated) {\n this.generated = generated != null ? generated : false;\n this.objects = this.properties = props || [];\n }\n\n Obj.prototype.children = ['properties'];\n\n Obj.prototype.compileNode = function(o) {\n var answer, dynamicIndex, hasDynamic, i, idt, indent, j, join, k, key, l, lastNoncom, len1, len2, len3, node, oref, prop, props, ref3, value;\n props = this.properties;\n if (this.generated) {\n for (j = 0, len1 = props.length; j < len1; j++) {\n node = props[j];\n if (node instanceof Value) {\n node.error('cannot have an implicit value in an implicit object');\n }\n }\n }\n for (dynamicIndex = k = 0, len2 = props.length; k < len2; dynamicIndex = ++k) {\n prop = props[dynamicIndex];\n if ((prop.variable || prop).base instanceof Parens) {\n break;\n }\n }\n hasDynamic = dynamicIndex < props.length;\n idt = o.indent += TAB;\n lastNoncom = this.lastNonComment(this.properties);\n answer = [];\n if (hasDynamic) {\n oref = o.scope.freeVariable('obj');\n answer.push(this.makeCode(\"(\\n\" + idt + oref + \" = \"));\n }\n answer.push(this.makeCode(\"{\" + (props.length === 0 || dynamicIndex === 0 ? '}' : '\\n')));\n for (i = l = 0, len3 = props.length; l < len3; i = ++l) {\n prop = props[i];\n if (i === dynamicIndex) {\n if (i !== 0) {\n answer.push(this.makeCode(\"\\n\" + idt + \"}\"));\n }\n answer.push(this.makeCode(',\\n'));\n }\n join = i === props.length - 1 || i === dynamicIndex - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\\n' : ',\\n';\n indent = prop instanceof Comment ? '' : idt;\n if (hasDynamic && i < dynamicIndex) {\n indent += TAB;\n }\n if (prop instanceof Assign) {\n if (prop.context !== 'object') {\n prop.operatorToken.error(\"unexpected \" + prop.operatorToken.value);\n }\n if (prop.variable instanceof Value && prop.variable.hasProperties()) {\n prop.variable.error('invalid object key');\n }\n }\n if (prop instanceof Value && prop[\"this\"]) {\n prop = new Assign(prop.properties[0].name, prop, 'object');\n }\n if (!(prop instanceof Comment)) {\n if (i < dynamicIndex) {\n if (!(prop instanceof Assign)) {\n prop = new Assign(prop, prop, 'object');\n }\n (prop.variable.base || prop.variable).asKey = true;\n } else {\n if (prop instanceof Assign) {\n key = prop.variable;\n value = prop.value;\n } else {\n ref3 = prop.base.cache(o), key = ref3[0], value = ref3[1];\n }\n prop = new Assign(new Value(new Literal(oref), [new Access(key)]), value);\n }\n }\n if (indent) {\n answer.push(this.makeCode(indent));\n }\n answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP));\n if (join) {\n answer.push(this.makeCode(join));\n }\n }\n if (hasDynamic) {\n answer.push(this.makeCode(\",\\n\" + idt + oref + \"\\n\" + this.tab + \")\"));\n } else {\n if (props.length !== 0) {\n answer.push(this.makeCode(\"\\n\" + this.tab + \"}\"));\n }\n }\n if (this.front && !hasDynamic) {\n return this.wrapInBraces(answer);\n } else {\n return answer;\n }\n };\n\n Obj.prototype.assigns = function(name) {\n var j, len1, prop, ref3;\n ref3 = this.properties;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n prop = ref3[j];\n if (prop.assigns(name)) {\n return true;\n }\n }\n return false;\n };\n\n return Obj;\n\n })(Base);\n\n exports.Arr = Arr = (function(superClass1) {\n extend1(Arr, superClass1);\n\n function Arr(objs) {\n this.objects = objs || [];\n }\n\n Arr.prototype.children = ['objects'];\n\n Arr.prototype.compileNode = function(o) {\n var answer, compiledObjs, fragments, index, j, len1, obj;\n if (!this.objects.length) {\n return [this.makeCode('[]')];\n }\n o.indent += TAB;\n answer = Splat.compileSplattedArray(o, this.objects);\n if (answer.length) {\n return answer;\n }\n answer = [];\n compiledObjs = (function() {\n var j, len1, ref3, results;\n ref3 = this.objects;\n results = [];\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n obj = ref3[j];\n results.push(obj.compileToFragments(o, LEVEL_LIST));\n }\n return results;\n }).call(this);\n for (index = j = 0, len1 = compiledObjs.length; j < len1; index = ++j) {\n fragments = compiledObjs[index];\n if (index) {\n answer.push(this.makeCode(\", \"));\n }\n answer.push.apply(answer, fragments);\n }\n if (fragmentsToText(answer).indexOf('\\n') >= 0) {\n answer.unshift(this.makeCode(\"[\\n\" + o.indent));\n answer.push(this.makeCode(\"\\n\" + this.tab + \"]\"));\n } else {\n answer.unshift(this.makeCode(\"[\"));\n answer.push(this.makeCode(\"]\"));\n }\n return answer;\n };\n\n Arr.prototype.assigns = function(name) {\n var j, len1, obj, ref3;\n ref3 = this.objects;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n obj = ref3[j];\n if (obj.assigns(name)) {\n return true;\n }\n }\n return false;\n };\n\n return Arr;\n\n })(Base);\n\n exports.Class = Class = (function(superClass1) {\n extend1(Class, superClass1);\n\n function Class(variable1, parent1, body1) {\n this.variable = variable1;\n this.parent = parent1;\n this.body = body1 != null ? body1 : new Block;\n this.boundFuncs = [];\n this.body.classBody = true;\n }\n\n Class.prototype.children = ['variable', 'parent', 'body'];\n\n Class.prototype.determineName = function() {\n var decl, ref3, tail;\n if (!this.variable) {\n return null;\n }\n ref3 = this.variable.properties, tail = ref3[ref3.length - 1];\n decl = tail ? tail instanceof Access && tail.name.value : this.variable.base.value;\n if (indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {\n this.variable.error(\"class variable name may not be \" + decl);\n }\n return decl && (decl = IDENTIFIER.test(decl) && decl);\n };\n\n Class.prototype.setContext = function(name) {\n return this.body.traverseChildren(false, function(node) {\n if (node.classBody) {\n return false;\n }\n if (node instanceof Literal && node.value === 'this') {\n return node.value = name;\n } else if (node instanceof Code) {\n if (node.bound) {\n return node.context = name;\n }\n }\n });\n };\n\n Class.prototype.addBoundFunctions = function(o) {\n var bvar, j, len1, lhs, ref3;\n ref3 = this.boundFuncs;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n bvar = ref3[j];\n lhs = (new Value(new Literal(\"this\"), [new Access(bvar)])).compile(o);\n this.ctor.body.unshift(new Literal(lhs + \" = \" + (utility('bind', o)) + \"(\" + lhs + \", this)\"));\n }\n };\n\n Class.prototype.addProperties = function(node, name, o) {\n var acc, assign, base, exprs, func, props;\n props = node.base.properties.slice(0);\n exprs = (function() {\n var results;\n results = [];\n while (assign = props.shift()) {\n if (assign instanceof Assign) {\n base = assign.variable.base;\n delete assign.context;\n func = assign.value;\n if (base.value === 'constructor') {\n if (this.ctor) {\n assign.error('cannot define more than one constructor in a class');\n }\n if (func.bound) {\n assign.error('cannot define a constructor as a bound function');\n }\n if (func instanceof Code) {\n assign = this.ctor = func;\n } else {\n this.externalCtor = o.classScope.freeVariable('class');\n assign = new Assign(new Literal(this.externalCtor), func);\n }\n } else {\n if (assign.variable[\"this\"]) {\n func[\"static\"] = true;\n } else {\n acc = base.isComplex() ? new Index(base) : new Access(base);\n assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), acc]);\n if (func instanceof Code && func.bound) {\n this.boundFuncs.push(base);\n func.bound = false;\n }\n }\n }\n }\n results.push(assign);\n }\n return results;\n }).call(this);\n return compact(exprs);\n };\n\n Class.prototype.walkBody = function(name, o) {\n return this.traverseChildren(false, (function(_this) {\n return function(child) {\n var cont, exps, i, j, len1, node, ref3;\n cont = true;\n if (child instanceof Class) {\n return false;\n }\n if (child instanceof Block) {\n ref3 = exps = child.expressions;\n for (i = j = 0, len1 = ref3.length; j < len1; i = ++j) {\n node = ref3[i];\n if (node instanceof Assign && node.variable.looksStatic(name)) {\n node.value[\"static\"] = true;\n } else if (node instanceof Value && node.isObject(true)) {\n cont = false;\n exps[i] = _this.addProperties(node, name, o);\n }\n }\n child.expressions = exps = flatten(exps);\n }\n return cont && !(child instanceof Class);\n };\n })(this));\n };\n\n Class.prototype.hoistDirectivePrologue = function() {\n var expressions, index, node;\n index = 0;\n expressions = this.body.expressions;\n while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) {\n ++index;\n }\n return this.directives = expressions.splice(0, index);\n };\n\n Class.prototype.ensureConstructor = function(name) {\n if (!this.ctor) {\n this.ctor = new Code;\n if (this.externalCtor) {\n this.ctor.body.push(new Literal(this.externalCtor + \".apply(this, arguments)\"));\n } else if (this.parent) {\n this.ctor.body.push(new Literal(name + \".__super__.constructor.apply(this, arguments)\"));\n }\n this.ctor.body.makeReturn();\n this.body.expressions.unshift(this.ctor);\n }\n this.ctor.ctor = this.ctor.name = name;\n this.ctor.klass = null;\n return this.ctor.noReturn = true;\n };\n\n Class.prototype.compileNode = function(o) {\n var args, argumentsNode, func, jumpNode, klass, lname, name, ref3, superClass;\n if (jumpNode = this.body.jumps()) {\n jumpNode.error('Class bodies cannot contain pure statements');\n }\n if (argumentsNode = this.body.contains(isLiteralArguments)) {\n argumentsNode.error(\"Class bodies shouldn't reference arguments\");\n }\n name = this.determineName() || '_Class';\n if (name.reserved) {\n name = \"_\" + name;\n }\n lname = new Literal(name);\n func = new Code([], Block.wrap([this.body]));\n args = [];\n o.classScope = func.makeScope(o.scope);\n this.hoistDirectivePrologue();\n this.setContext(name);\n this.walkBody(name, o);\n this.ensureConstructor(name);\n this.addBoundFunctions(o);\n this.body.spaced = true;\n this.body.expressions.push(lname);\n if (this.parent) {\n superClass = new Literal(o.classScope.freeVariable('superClass', {\n reserve: false\n }));\n this.body.expressions.unshift(new Extends(lname, superClass));\n func.params.push(new Param(superClass));\n args.push(this.parent);\n }\n (ref3 = this.body.expressions).unshift.apply(ref3, this.directives);\n klass = new Parens(new Call(func, args));\n if (this.variable) {\n klass = new Assign(this.variable, klass);\n }\n return klass.compileToFragments(o);\n };\n\n return Class;\n\n })(Base);\n\n exports.Assign = Assign = (function(superClass1) {\n extend1(Assign, superClass1);\n\n function Assign(variable1, value1, context, options) {\n var forbidden, name, ref3;\n this.variable = variable1;\n this.value = value1;\n this.context = context;\n if (options == null) {\n options = {};\n }\n this.param = options.param, this.subpattern = options.subpattern, this.operatorToken = options.operatorToken;\n forbidden = (ref3 = (name = this.variable.unwrapAll().value), indexOf.call(STRICT_PROSCRIBED, ref3) >= 0);\n if (forbidden && this.context !== 'object') {\n this.variable.error(\"variable name may not be \\\"\" + name + \"\\\"\");\n }\n }\n\n Assign.prototype.children = ['variable', 'value'];\n\n Assign.prototype.isStatement = function(o) {\n return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && indexOf.call(this.context, \"?\") >= 0;\n };\n\n Assign.prototype.assigns = function(name) {\n return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);\n };\n\n Assign.prototype.unfoldSoak = function(o) {\n return unfoldSoak(o, this, 'variable');\n };\n\n Assign.prototype.compileNode = function(o) {\n var answer, compiledName, isValue, j, name, properties, prototype, ref3, ref4, ref5, ref6, ref7, val, varBase;\n if (isValue = this.variable instanceof Value) {\n if (this.variable.isArray() || this.variable.isObject()) {\n return this.compilePatternMatch(o);\n }\n if (this.variable.isSplice()) {\n return this.compileSplice(o);\n }\n if ((ref3 = this.context) === '||=' || ref3 === '&&=' || ref3 === '?=') {\n return this.compileConditional(o);\n }\n if ((ref4 = this.context) === '**=' || ref4 === '//=' || ref4 === '%%=') {\n return this.compileSpecialMath(o);\n }\n }\n if (this.value instanceof Code) {\n if (this.value[\"static\"]) {\n this.value.klass = this.variable.base;\n this.value.name = this.variable.properties[0];\n this.value.variable = this.variable;\n } else if (((ref5 = this.variable.properties) != null ? ref5.length : void 0) >= 2) {\n ref6 = this.variable.properties, properties = 3 <= ref6.length ? slice.call(ref6, 0, j = ref6.length - 2) : (j = 0, []), prototype = ref6[j++], name = ref6[j++];\n if (((ref7 = prototype.name) != null ? ref7.value : void 0) === 'prototype') {\n this.value.klass = new Value(this.variable.base, properties);\n this.value.name = name;\n this.value.variable = this.variable;\n }\n }\n }\n if (!this.context) {\n varBase = this.variable.unwrapAll();\n if (!varBase.isAssignable()) {\n this.variable.error(\"\\\"\" + (this.variable.compile(o)) + \"\\\" cannot be assigned\");\n }\n if (!(typeof varBase.hasProperties === \"function\" ? varBase.hasProperties() : void 0)) {\n if (this.param) {\n o.scope.add(varBase.value, 'var');\n } else {\n o.scope.find(varBase.value);\n }\n }\n }\n val = this.value.compileToFragments(o, LEVEL_LIST);\n if (isValue && this.variable.base instanceof Obj) {\n this.variable.front = true;\n }\n compiledName = this.variable.compileToFragments(o, LEVEL_LIST);\n if (this.context === 'object') {\n return compiledName.concat(this.makeCode(\": \"), val);\n }\n answer = compiledName.concat(this.makeCode(\" \" + (this.context || '=') + \" \"), val);\n if (o.level <= LEVEL_LIST) {\n return answer;\n } else {\n return this.wrapInBraces(answer);\n }\n };\n\n Assign.prototype.compilePatternMatch = function(o) {\n var acc, assigns, code, defaultValue, expandedIdx, fragments, i, idx, isObject, ivar, j, len1, name, obj, objects, olen, ref, ref3, ref4, ref5, ref6, ref7, rest, top, val, value, vvar, vvarText;\n top = o.level === LEVEL_TOP;\n value = this.value;\n objects = this.variable.base.objects;\n if (!(olen = objects.length)) {\n code = value.compileToFragments(o);\n if (o.level >= LEVEL_OP) {\n return this.wrapInBraces(code);\n } else {\n return code;\n }\n }\n obj = objects[0];\n if (olen === 1 && obj instanceof Expansion) {\n obj.error('Destructuring assignment has no target');\n }\n isObject = this.variable.isObject();\n if (top && olen === 1 && !(obj instanceof Splat)) {\n defaultValue = null;\n if (obj instanceof Assign && obj.context === 'object') {\n ref3 = obj, (ref4 = ref3.variable, idx = ref4.base), obj = ref3.value;\n if (obj instanceof Assign) {\n defaultValue = obj.value;\n obj = obj.variable;\n }\n } else {\n if (obj instanceof Assign) {\n defaultValue = obj.value;\n obj = obj.variable;\n }\n idx = isObject ? obj[\"this\"] ? obj.properties[0].name : obj : new Literal(0);\n }\n acc = IDENTIFIER.test(idx.unwrap().value);\n value = new Value(value);\n value.properties.push(new (acc ? Access : Index)(idx));\n if (ref5 = obj.unwrap().value, indexOf.call(RESERVED, ref5) >= 0) {\n obj.error(\"assignment to a reserved word: \" + (obj.compile(o)));\n }\n if (defaultValue) {\n value = new Op('?', value, defaultValue);\n }\n return new Assign(obj, value, null, {\n param: this.param\n }).compileToFragments(o, LEVEL_TOP);\n }\n vvar = value.compileToFragments(o, LEVEL_LIST);\n vvarText = fragmentsToText(vvar);\n assigns = [];\n expandedIdx = false;\n if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) {\n assigns.push([this.makeCode((ref = o.scope.freeVariable('ref')) + \" = \")].concat(slice.call(vvar)));\n vvar = [this.makeCode(ref)];\n vvarText = ref;\n }\n for (i = j = 0, len1 = objects.length; j < len1; i = ++j) {\n obj = objects[i];\n idx = i;\n if (!expandedIdx && obj instanceof Splat) {\n name = obj.name.unwrap().value;\n obj = obj.unwrap();\n val = olen + \" <= \" + vvarText + \".length ? \" + (utility('slice', o)) + \".call(\" + vvarText + \", \" + i;\n if (rest = olen - i - 1) {\n ivar = o.scope.freeVariable('i', {\n single: true\n });\n val += \", \" + ivar + \" = \" + vvarText + \".length - \" + rest + \") : (\" + ivar + \" = \" + i + \", [])\";\n } else {\n val += \") : []\";\n }\n val = new Literal(val);\n expandedIdx = ivar + \"++\";\n } else if (!expandedIdx && obj instanceof Expansion) {\n if (rest = olen - i - 1) {\n if (rest === 1) {\n expandedIdx = vvarText + \".length - 1\";\n } else {\n ivar = o.scope.freeVariable('i', {\n single: true\n });\n val = new Literal(ivar + \" = \" + vvarText + \".length - \" + rest);\n expandedIdx = ivar + \"++\";\n assigns.push(val.compileToFragments(o, LEVEL_LIST));\n }\n }\n continue;\n } else {\n if (obj instanceof Splat || obj instanceof Expansion) {\n obj.error(\"multiple splats/expansions are disallowed in an assignment\");\n }\n defaultValue = null;\n if (obj instanceof Assign && obj.context === 'object') {\n ref6 = obj, (ref7 = ref6.variable, idx = ref7.base), obj = ref6.value;\n if (obj instanceof Assign) {\n defaultValue = obj.value;\n obj = obj.variable;\n }\n } else {\n if (obj instanceof Assign) {\n defaultValue = obj.value;\n obj = obj.variable;\n }\n idx = isObject ? obj[\"this\"] ? obj.properties[0].name : obj : new Literal(expandedIdx || idx);\n }\n name = obj.unwrap().value;\n acc = IDENTIFIER.test(idx.unwrap().value);\n val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]);\n if (defaultValue) {\n val = new Op('?', val, defaultValue);\n }\n }\n if ((name != null) && indexOf.call(RESERVED, name) >= 0) {\n obj.error(\"assignment to a reserved word: \" + (obj.compile(o)));\n }\n assigns.push(new Assign(obj, val, null, {\n param: this.param,\n subpattern: true\n }).compileToFragments(o, LEVEL_LIST));\n }\n if (!(top || this.subpattern)) {\n assigns.push(vvar);\n }\n fragments = this.joinFragmentArrays(assigns, ', ');\n if (o.level < LEVEL_LIST) {\n return fragments;\n } else {\n return this.wrapInBraces(fragments);\n }\n };\n\n Assign.prototype.compileConditional = function(o) {\n var fragments, left, ref3, right;\n ref3 = this.variable.cacheReference(o), left = ref3[0], right = ref3[1];\n if (!left.properties.length && left.base instanceof Literal && left.base.value !== \"this\" && !o.scope.check(left.base.value)) {\n this.variable.error(\"the variable \\\"\" + left.base.value + \"\\\" can't be assigned with \" + this.context + \" because it has not been declared before\");\n }\n if (indexOf.call(this.context, \"?\") >= 0) {\n o.isExistentialEquals = true;\n return new If(new Existence(left), right, {\n type: 'if'\n }).addElse(new Assign(right, this.value, '=')).compileToFragments(o);\n } else {\n fragments = new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o);\n if (o.level <= LEVEL_LIST) {\n return fragments;\n } else {\n return this.wrapInBraces(fragments);\n }\n }\n };\n\n Assign.prototype.compileSpecialMath = function(o) {\n var left, ref3, right;\n ref3 = this.variable.cacheReference(o), left = ref3[0], right = ref3[1];\n return new Assign(left, new Op(this.context.slice(0, -1), right, this.value)).compileToFragments(o);\n };\n\n Assign.prototype.compileSplice = function(o) {\n var answer, exclusive, from, fromDecl, fromRef, name, ref3, ref4, ref5, to, valDef, valRef;\n ref3 = this.variable.properties.pop().range, from = ref3.from, to = ref3.to, exclusive = ref3.exclusive;\n name = this.variable.compile(o);\n if (from) {\n ref4 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = ref4[0], fromRef = ref4[1];\n } else {\n fromDecl = fromRef = '0';\n }\n if (to) {\n if (from instanceof Value && from.isSimpleNumber() && to instanceof Value && to.isSimpleNumber()) {\n to = to.compile(o) - fromRef;\n if (!exclusive) {\n to += 1;\n }\n } else {\n to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;\n if (!exclusive) {\n to += ' + 1';\n }\n }\n } else {\n to = \"9e9\";\n }\n ref5 = this.value.cache(o, LEVEL_LIST), valDef = ref5[0], valRef = ref5[1];\n answer = [].concat(this.makeCode(\"[].splice.apply(\" + name + \", [\" + fromDecl + \", \" + to + \"].concat(\"), valDef, this.makeCode(\")), \"), valRef);\n if (o.level > LEVEL_TOP) {\n return this.wrapInBraces(answer);\n } else {\n return answer;\n }\n };\n\n return Assign;\n\n })(Base);\n\n exports.Code = Code = (function(superClass1) {\n extend1(Code, superClass1);\n\n function Code(params, body, tag) {\n this.params = params || [];\n this.body = body || new Block;\n this.bound = tag === 'boundfunc';\n this.isGenerator = !!this.body.contains(function(node) {\n var ref3;\n return node instanceof Op && ((ref3 = node.operator) === 'yield' || ref3 === 'yield*');\n });\n }\n\n Code.prototype.children = ['params', 'body'];\n\n Code.prototype.isStatement = function() {\n return !!this.ctor;\n };\n\n Code.prototype.jumps = NO;\n\n Code.prototype.makeScope = function(parentScope) {\n return new Scope(parentScope, this.body, this);\n };\n\n Code.prototype.compileNode = function(o) {\n var answer, boundfunc, code, exprs, i, j, k, l, len1, len2, len3, len4, len5, len6, lit, m, p, param, params, q, r, ref, ref3, ref4, ref5, ref6, ref7, ref8, splats, uniqs, val, wasEmpty, wrapper;\n if (this.bound && ((ref3 = o.scope.method) != null ? ref3.bound : void 0)) {\n this.context = o.scope.method.context;\n }\n if (this.bound && !this.context) {\n this.context = '_this';\n wrapper = new Code([new Param(new Literal(this.context))], new Block([this]));\n boundfunc = new Call(wrapper, [new Literal('this')]);\n boundfunc.updateLocationDataIfMissing(this.locationData);\n return boundfunc.compileNode(o);\n }\n o.scope = del(o, 'classScope') || this.makeScope(o.scope);\n o.scope.shared = del(o, 'sharedScope');\n o.indent += TAB;\n delete o.bare;\n delete o.isExistentialEquals;\n params = [];\n exprs = [];\n ref4 = this.params;\n for (j = 0, len1 = ref4.length; j < len1; j++) {\n param = ref4[j];\n if (!(param instanceof Expansion)) {\n o.scope.parameter(param.asReference(o));\n }\n }\n ref5 = this.params;\n for (k = 0, len2 = ref5.length; k < len2; k++) {\n param = ref5[k];\n if (!(param.splat || param instanceof Expansion)) {\n continue;\n }\n ref6 = this.params;\n for (l = 0, len3 = ref6.length; l < len3; l++) {\n p = ref6[l];\n if (!(p instanceof Expansion) && p.name.value) {\n o.scope.add(p.name.value, 'var', true);\n }\n }\n splats = new Assign(new Value(new Arr((function() {\n var len4, m, ref7, results;\n ref7 = this.params;\n results = [];\n for (m = 0, len4 = ref7.length; m < len4; m++) {\n p = ref7[m];\n results.push(p.asReference(o));\n }\n return results;\n }).call(this))), new Value(new Literal('arguments')));\n break;\n }\n ref7 = this.params;\n for (m = 0, len4 = ref7.length; m < len4; m++) {\n param = ref7[m];\n if (param.isComplex()) {\n val = ref = param.asReference(o);\n if (param.value) {\n val = new Op('?', ref, param.value);\n }\n exprs.push(new Assign(new Value(param.name), val, '=', {\n param: true\n }));\n } else {\n ref = param;\n if (param.value) {\n lit = new Literal(ref.name.value + ' == null');\n val = new Assign(new Value(param.name), param.value, '=');\n exprs.push(new If(lit, val));\n }\n }\n if (!splats) {\n params.push(ref);\n }\n }\n wasEmpty = this.body.isEmpty();\n if (splats) {\n exprs.unshift(splats);\n }\n if (exprs.length) {\n (ref8 = this.body.expressions).unshift.apply(ref8, exprs);\n }\n for (i = q = 0, len5 = params.length; q < len5; i = ++q) {\n p = params[i];\n params[i] = p.compileToFragments(o);\n o.scope.parameter(fragmentsToText(params[i]));\n }\n uniqs = [];\n this.eachParamName(function(name, node) {\n if (indexOf.call(uniqs, name) >= 0) {\n node.error(\"multiple parameters named \" + name);\n }\n return uniqs.push(name);\n });\n if (!(wasEmpty || this.noReturn)) {\n this.body.makeReturn();\n }\n code = 'function';\n if (this.isGenerator) {\n code += '*';\n }\n if (this.ctor) {\n code += ' ' + this.name;\n }\n code += '(';\n answer = [this.makeCode(code)];\n for (i = r = 0, len6 = params.length; r < len6; i = ++r) {\n p = params[i];\n if (i) {\n answer.push(this.makeCode(\", \"));\n }\n answer.push.apply(answer, p);\n }\n answer.push(this.makeCode(') {'));\n if (!this.body.isEmpty()) {\n answer = answer.concat(this.makeCode(\"\\n\"), this.body.compileWithDeclarations(o), this.makeCode(\"\\n\" + this.tab));\n }\n answer.push(this.makeCode('}'));\n if (this.ctor) {\n return [this.makeCode(this.tab)].concat(slice.call(answer));\n }\n if (this.front || (o.level >= LEVEL_ACCESS)) {\n return this.wrapInBraces(answer);\n } else {\n return answer;\n }\n };\n\n Code.prototype.eachParamName = function(iterator) {\n var j, len1, param, ref3, results;\n ref3 = this.params;\n results = [];\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n param = ref3[j];\n results.push(param.eachName(iterator));\n }\n return results;\n };\n\n Code.prototype.traverseChildren = function(crossScope, func) {\n if (crossScope) {\n return Code.__super__.traverseChildren.call(this, crossScope, func);\n }\n };\n\n return Code;\n\n })(Base);\n\n exports.Param = Param = (function(superClass1) {\n extend1(Param, superClass1);\n\n function Param(name1, value1, splat) {\n var name, ref3, token;\n this.name = name1;\n this.value = value1;\n this.splat = splat;\n if (ref3 = (name = this.name.unwrapAll().value), indexOf.call(STRICT_PROSCRIBED, ref3) >= 0) {\n this.name.error(\"parameter name \\\"\" + name + \"\\\" is not allowed\");\n }\n if (this.name instanceof Obj && this.name.generated) {\n token = this.name.objects[0].operatorToken;\n token.error(\"unexpected \" + token.value);\n }\n }\n\n Param.prototype.children = ['name', 'value'];\n\n Param.prototype.compileToFragments = function(o) {\n return this.name.compileToFragments(o, LEVEL_LIST);\n };\n\n Param.prototype.asReference = function(o) {\n var name, node;\n if (this.reference) {\n return this.reference;\n }\n node = this.name;\n if (node[\"this\"]) {\n name = node.properties[0].name.value;\n if (name.reserved) {\n name = \"_\" + name;\n }\n node = new Literal(o.scope.freeVariable(name));\n } else if (node.isComplex()) {\n node = new Literal(o.scope.freeVariable('arg'));\n }\n node = new Value(node);\n if (this.splat) {\n node = new Splat(node);\n }\n node.updateLocationDataIfMissing(this.locationData);\n return this.reference = node;\n };\n\n Param.prototype.isComplex = function() {\n return this.name.isComplex();\n };\n\n Param.prototype.eachName = function(iterator, name) {\n var atParam, j, len1, node, obj, ref3;\n if (name == null) {\n name = this.name;\n }\n atParam = function(obj) {\n return iterator(\"@\" + obj.properties[0].name.value, obj);\n };\n if (name instanceof Literal) {\n return iterator(name.value, name);\n }\n if (name instanceof Value) {\n return atParam(name);\n }\n ref3 = name.objects;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n obj = ref3[j];\n if (obj instanceof Assign && (obj.context == null)) {\n obj = obj.variable;\n }\n if (obj instanceof Assign) {\n this.eachName(iterator, obj.value.unwrap());\n } else if (obj instanceof Splat) {\n node = obj.name.unwrap();\n iterator(node.value, node);\n } else if (obj instanceof Value) {\n if (obj.isArray() || obj.isObject()) {\n this.eachName(iterator, obj.base);\n } else if (obj[\"this\"]) {\n atParam(obj);\n } else {\n iterator(obj.base.value, obj.base);\n }\n } else if (!(obj instanceof Expansion)) {\n obj.error(\"illegal parameter \" + (obj.compile()));\n }\n }\n };\n\n return Param;\n\n })(Base);\n\n exports.Splat = Splat = (function(superClass1) {\n extend1(Splat, superClass1);\n\n Splat.prototype.children = ['name'];\n\n Splat.prototype.isAssignable = YES;\n\n function Splat(name) {\n this.name = name.compile ? name : new Literal(name);\n }\n\n Splat.prototype.assigns = function(name) {\n return this.name.assigns(name);\n };\n\n Splat.prototype.compileToFragments = function(o) {\n return this.name.compileToFragments(o);\n };\n\n Splat.prototype.unwrap = function() {\n return this.name;\n };\n\n Splat.compileSplattedArray = function(o, list, apply) {\n var args, base, compiledNode, concatPart, fragments, i, index, j, last, len1, node;\n index = -1;\n while ((node = list[++index]) && !(node instanceof Splat)) {\n continue;\n }\n if (index >= list.length) {\n return [];\n }\n if (list.length === 1) {\n node = list[0];\n fragments = node.compileToFragments(o, LEVEL_LIST);\n if (apply) {\n return fragments;\n }\n return [].concat(node.makeCode((utility('slice', o)) + \".call(\"), fragments, node.makeCode(\")\"));\n }\n args = list.slice(index);\n for (i = j = 0, len1 = args.length; j < len1; i = ++j) {\n node = args[i];\n compiledNode = node.compileToFragments(o, LEVEL_LIST);\n args[i] = node instanceof Splat ? [].concat(node.makeCode((utility('slice', o)) + \".call(\"), compiledNode, node.makeCode(\")\")) : [].concat(node.makeCode(\"[\"), compiledNode, node.makeCode(\"]\"));\n }\n if (index === 0) {\n node = list[0];\n concatPart = node.joinFragmentArrays(args.slice(1), ', ');\n return args[0].concat(node.makeCode(\".concat(\"), concatPart, node.makeCode(\")\"));\n }\n base = (function() {\n var k, len2, ref3, results;\n ref3 = list.slice(0, index);\n results = [];\n for (k = 0, len2 = ref3.length; k < len2; k++) {\n node = ref3[k];\n results.push(node.compileToFragments(o, LEVEL_LIST));\n }\n return results;\n })();\n base = list[0].joinFragmentArrays(base, ', ');\n concatPart = list[index].joinFragmentArrays(args, ', ');\n last = list[list.length - 1];\n return [].concat(list[0].makeCode(\"[\"), base, list[index].makeCode(\"].concat(\"), concatPart, last.makeCode(\")\"));\n };\n\n return Splat;\n\n })(Base);\n\n exports.Expansion = Expansion = (function(superClass1) {\n extend1(Expansion, superClass1);\n\n function Expansion() {\n return Expansion.__super__.constructor.apply(this, arguments);\n }\n\n Expansion.prototype.isComplex = NO;\n\n Expansion.prototype.compileNode = function(o) {\n return this.error('Expansion must be used inside a destructuring assignment or parameter list');\n };\n\n Expansion.prototype.asReference = function(o) {\n return this;\n };\n\n Expansion.prototype.eachName = function(iterator) {};\n\n return Expansion;\n\n })(Base);\n\n exports.While = While = (function(superClass1) {\n extend1(While, superClass1);\n\n function While(condition, options) {\n this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;\n this.guard = options != null ? options.guard : void 0;\n }\n\n While.prototype.children = ['condition', 'guard', 'body'];\n\n While.prototype.isStatement = YES;\n\n While.prototype.makeReturn = function(res) {\n if (res) {\n return While.__super__.makeReturn.apply(this, arguments);\n } else {\n this.returns = !this.jumps({\n loop: true\n });\n return this;\n }\n };\n\n While.prototype.addBody = function(body1) {\n this.body = body1;\n return this;\n };\n\n While.prototype.jumps = function() {\n var expressions, j, jumpNode, len1, node;\n expressions = this.body.expressions;\n if (!expressions.length) {\n return false;\n }\n for (j = 0, len1 = expressions.length; j < len1; j++) {\n node = expressions[j];\n if (jumpNode = node.jumps({\n loop: true\n })) {\n return jumpNode;\n }\n }\n return false;\n };\n\n While.prototype.compileNode = function(o) {\n var answer, body, rvar, set;\n o.indent += TAB;\n set = '';\n body = this.body;\n if (body.isEmpty()) {\n body = this.makeCode('');\n } else {\n if (this.returns) {\n body.makeReturn(rvar = o.scope.freeVariable('results'));\n set = \"\" + this.tab + rvar + \" = [];\\n\";\n }\n if (this.guard) {\n if (body.expressions.length > 1) {\n body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal(\"continue\")));\n } else {\n if (this.guard) {\n body = Block.wrap([new If(this.guard, body)]);\n }\n }\n }\n body = [].concat(this.makeCode(\"\\n\"), body.compileToFragments(o, LEVEL_TOP), this.makeCode(\"\\n\" + this.tab));\n }\n answer = [].concat(this.makeCode(set + this.tab + \"while (\"), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(\") {\"), body, this.makeCode(\"}\"));\n if (this.returns) {\n answer.push(this.makeCode(\"\\n\" + this.tab + \"return \" + rvar + \";\"));\n }\n return answer;\n };\n\n return While;\n\n })(Base);\n\n exports.Op = Op = (function(superClass1) {\n var CONVERSIONS, INVERSIONS;\n\n extend1(Op, superClass1);\n\n function Op(op, first, second, flip) {\n if (op === 'in') {\n return new In(first, second);\n }\n if (op === 'do') {\n return this.generateDo(first);\n }\n if (op === 'new') {\n if (first instanceof Call && !first[\"do\"] && !first.isNew) {\n return first.newInstance();\n }\n if (first instanceof Code && first.bound || first[\"do\"]) {\n first = new Parens(first);\n }\n }\n this.operator = CONVERSIONS[op] || op;\n this.first = first;\n this.second = second;\n this.flip = !!flip;\n return this;\n }\n\n CONVERSIONS = {\n '==': '===',\n '!=': '!==',\n 'of': 'in',\n 'yieldfrom': 'yield*'\n };\n\n INVERSIONS = {\n '!==': '===',\n '===': '!=='\n };\n\n Op.prototype.children = ['first', 'second'];\n\n Op.prototype.isSimpleNumber = NO;\n\n Op.prototype.isYield = function() {\n var ref3;\n return (ref3 = this.operator) === 'yield' || ref3 === 'yield*';\n };\n\n Op.prototype.isYieldReturn = function() {\n return this.isYield() && this.first instanceof Return;\n };\n\n Op.prototype.isUnary = function() {\n return !this.second;\n };\n\n Op.prototype.isComplex = function() {\n var ref3;\n return !(this.isUnary() && ((ref3 = this.operator) === '+' || ref3 === '-') && this.first instanceof Value && this.first.isSimpleNumber());\n };\n\n Op.prototype.isChainable = function() {\n var ref3;\n return (ref3 = this.operator) === '<' || ref3 === '>' || ref3 === '>=' || ref3 === '<=' || ref3 === '===' || ref3 === '!==';\n };\n\n Op.prototype.invert = function() {\n var allInvertable, curr, fst, op, ref3;\n if (this.isChainable() && this.first.isChainable()) {\n allInvertable = true;\n curr = this;\n while (curr && curr.operator) {\n allInvertable && (allInvertable = curr.operator in INVERSIONS);\n curr = curr.first;\n }\n if (!allInvertable) {\n return new Parens(this).invert();\n }\n curr = this;\n while (curr && curr.operator) {\n curr.invert = !curr.invert;\n curr.operator = INVERSIONS[curr.operator];\n curr = curr.first;\n }\n return this;\n } else if (op = INVERSIONS[this.operator]) {\n this.operator = op;\n if (this.first.unwrap() instanceof Op) {\n this.first.invert();\n }\n return this;\n } else if (this.second) {\n return new Parens(this).invert();\n } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((ref3 = fst.operator) === '!' || ref3 === 'in' || ref3 === 'instanceof')) {\n return fst;\n } else {\n return new Op('!', this);\n }\n };\n\n Op.prototype.unfoldSoak = function(o) {\n var ref3;\n return ((ref3 = this.operator) === '++' || ref3 === '--' || ref3 === 'delete') && unfoldSoak(o, this, 'first');\n };\n\n Op.prototype.generateDo = function(exp) {\n var call, func, j, len1, param, passedParams, ref, ref3;\n passedParams = [];\n func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp;\n ref3 = func.params || [];\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n param = ref3[j];\n if (param.value) {\n passedParams.push(param.value);\n delete param.value;\n } else {\n passedParams.push(param);\n }\n }\n call = new Call(exp, passedParams);\n call[\"do\"] = true;\n return call;\n };\n\n Op.prototype.compileNode = function(o) {\n var answer, isChain, lhs, ref3, ref4, rhs;\n isChain = this.isChainable() && this.first.isChainable();\n if (!isChain) {\n this.first.front = this.front;\n }\n if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {\n this.error('delete operand may not be argument or var');\n }\n if (((ref3 = this.operator) === '--' || ref3 === '++') && (ref4 = this.first.unwrapAll().value, indexOf.call(STRICT_PROSCRIBED, ref4) >= 0)) {\n this.error(\"cannot increment/decrement \\\"\" + (this.first.unwrapAll().value) + \"\\\"\");\n }\n if (this.isYield()) {\n return this.compileYield(o);\n }\n if (this.isUnary()) {\n return this.compileUnary(o);\n }\n if (isChain) {\n return this.compileChain(o);\n }\n switch (this.operator) {\n case '?':\n return this.compileExistence(o);\n case '**':\n return this.compilePower(o);\n case '//':\n return this.compileFloorDivision(o);\n case '%%':\n return this.compileModulo(o);\n default:\n lhs = this.first.compileToFragments(o, LEVEL_OP);\n rhs = this.second.compileToFragments(o, LEVEL_OP);\n answer = [].concat(lhs, this.makeCode(\" \" + this.operator + \" \"), rhs);\n if (o.level <= LEVEL_OP) {\n return answer;\n } else {\n return this.wrapInBraces(answer);\n }\n }\n };\n\n Op.prototype.compileChain = function(o) {\n var fragments, fst, ref3, shared;\n ref3 = this.first.second.cache(o), this.first.second = ref3[0], shared = ref3[1];\n fst = this.first.compileToFragments(o, LEVEL_OP);\n fragments = fst.concat(this.makeCode(\" \" + (this.invert ? '&&' : '||') + \" \"), shared.compileToFragments(o), this.makeCode(\" \" + this.operator + \" \"), this.second.compileToFragments(o, LEVEL_OP));\n return this.wrapInBraces(fragments);\n };\n\n Op.prototype.compileExistence = function(o) {\n var fst, ref;\n if (this.first.isComplex()) {\n ref = new Literal(o.scope.freeVariable('ref'));\n fst = new Parens(new Assign(ref, this.first));\n } else {\n fst = this.first;\n ref = fst;\n }\n return new If(new Existence(fst), ref, {\n type: 'if'\n }).addElse(this.second).compileToFragments(o);\n };\n\n Op.prototype.compileUnary = function(o) {\n var op, parts, plusMinus;\n parts = [];\n op = this.operator;\n parts.push([this.makeCode(op)]);\n if (op === '!' && this.first instanceof Existence) {\n this.first.negated = !this.first.negated;\n return this.first.compileToFragments(o);\n }\n if (o.level >= LEVEL_ACCESS) {\n return (new Parens(this)).compileToFragments(o);\n }\n plusMinus = op === '+' || op === '-';\n if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {\n parts.push([this.makeCode(' ')]);\n }\n if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) {\n this.first = new Parens(this.first);\n }\n parts.push(this.first.compileToFragments(o, LEVEL_OP));\n if (this.flip) {\n parts.reverse();\n }\n return this.joinFragmentArrays(parts, '');\n };\n\n Op.prototype.compileYield = function(o) {\n var op, parts;\n parts = [];\n op = this.operator;\n if (o.scope.parent == null) {\n this.error('yield statements must occur within a function generator.');\n }\n if (indexOf.call(Object.keys(this.first), 'expression') >= 0 && !(this.first instanceof Throw)) {\n if (this.isYieldReturn()) {\n parts.push(this.first.compileToFragments(o, LEVEL_TOP));\n } else if (this.first.expression != null) {\n parts.push(this.first.expression.compileToFragments(o, LEVEL_OP));\n }\n } else {\n parts.push([this.makeCode(\"(\" + op + \" \")]);\n parts.push(this.first.compileToFragments(o, LEVEL_OP));\n parts.push([this.makeCode(\")\")]);\n }\n return this.joinFragmentArrays(parts, '');\n };\n\n Op.prototype.compilePower = function(o) {\n var pow;\n pow = new Value(new Literal('Math'), [new Access(new Literal('pow'))]);\n return new Call(pow, [this.first, this.second]).compileToFragments(o);\n };\n\n Op.prototype.compileFloorDivision = function(o) {\n var div, floor;\n floor = new Value(new Literal('Math'), [new Access(new Literal('floor'))]);\n div = new Op('/', this.first, this.second);\n return new Call(floor, [div]).compileToFragments(o);\n };\n\n Op.prototype.compileModulo = function(o) {\n var mod;\n mod = new Value(new Literal(utility('modulo', o)));\n return new Call(mod, [this.first, this.second]).compileToFragments(o);\n };\n\n Op.prototype.toString = function(idt) {\n return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);\n };\n\n return Op;\n\n })(Base);\n\n exports.In = In = (function(superClass1) {\n extend1(In, superClass1);\n\n function In(object, array) {\n this.object = object;\n this.array = array;\n }\n\n In.prototype.children = ['object', 'array'];\n\n In.prototype.invert = NEGATE;\n\n In.prototype.compileNode = function(o) {\n var hasSplat, j, len1, obj, ref3;\n if (this.array instanceof Value && this.array.isArray() && this.array.base.objects.length) {\n ref3 = this.array.base.objects;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n obj = ref3[j];\n if (!(obj instanceof Splat)) {\n continue;\n }\n hasSplat = true;\n break;\n }\n if (!hasSplat) {\n return this.compileOrTest(o);\n }\n }\n return this.compileLoopTest(o);\n };\n\n In.prototype.compileOrTest = function(o) {\n var cmp, cnj, i, item, j, len1, ref, ref3, ref4, ref5, sub, tests;\n ref3 = this.object.cache(o, LEVEL_OP), sub = ref3[0], ref = ref3[1];\n ref4 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = ref4[0], cnj = ref4[1];\n tests = [];\n ref5 = this.array.base.objects;\n for (i = j = 0, len1 = ref5.length; j < len1; i = ++j) {\n item = ref5[i];\n if (i) {\n tests.push(this.makeCode(cnj));\n }\n tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS));\n }\n if (o.level < LEVEL_OP) {\n return tests;\n } else {\n return this.wrapInBraces(tests);\n }\n };\n\n In.prototype.compileLoopTest = function(o) {\n var fragments, ref, ref3, sub;\n ref3 = this.object.cache(o, LEVEL_LIST), sub = ref3[0], ref = ref3[1];\n fragments = [].concat(this.makeCode(utility('indexOf', o) + \".call(\"), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(\", \"), ref, this.makeCode(\") \" + (this.negated ? '< 0' : '>= 0')));\n if (fragmentsToText(sub) === fragmentsToText(ref)) {\n return fragments;\n }\n fragments = sub.concat(this.makeCode(', '), fragments);\n if (o.level < LEVEL_LIST) {\n return fragments;\n } else {\n return this.wrapInBraces(fragments);\n }\n };\n\n In.prototype.toString = function(idt) {\n return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));\n };\n\n return In;\n\n })(Base);\n\n exports.Try = Try = (function(superClass1) {\n extend1(Try, superClass1);\n\n function Try(attempt, errorVariable, recovery, ensure) {\n this.attempt = attempt;\n this.errorVariable = errorVariable;\n this.recovery = recovery;\n this.ensure = ensure;\n }\n\n Try.prototype.children = ['attempt', 'recovery', 'ensure'];\n\n Try.prototype.isStatement = YES;\n\n Try.prototype.jumps = function(o) {\n var ref3;\n return this.attempt.jumps(o) || ((ref3 = this.recovery) != null ? ref3.jumps(o) : void 0);\n };\n\n Try.prototype.makeReturn = function(res) {\n if (this.attempt) {\n this.attempt = this.attempt.makeReturn(res);\n }\n if (this.recovery) {\n this.recovery = this.recovery.makeReturn(res);\n }\n return this;\n };\n\n Try.prototype.compileNode = function(o) {\n var catchPart, ensurePart, generatedErrorVariableName, placeholder, tryPart;\n o.indent += TAB;\n tryPart = this.attempt.compileToFragments(o, LEVEL_TOP);\n catchPart = this.recovery ? (generatedErrorVariableName = o.scope.freeVariable('error'), placeholder = new Literal(generatedErrorVariableName), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(\" catch (\"), placeholder.compileToFragments(o), this.makeCode(\") {\\n\"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode(\"\\n\" + this.tab + \"}\"))) : !(this.ensure || this.recovery) ? [this.makeCode(\" catch (\" + generatedErrorVariableName + \") {}\")] : [];\n ensurePart = this.ensure ? [].concat(this.makeCode(\" finally {\\n\"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode(\"\\n\" + this.tab + \"}\")) : [];\n return [].concat(this.makeCode(this.tab + \"try {\\n\"), tryPart, this.makeCode(\"\\n\" + this.tab + \"}\"), catchPart, ensurePart);\n };\n\n return Try;\n\n })(Base);\n\n exports.Throw = Throw = (function(superClass1) {\n extend1(Throw, superClass1);\n\n function Throw(expression) {\n this.expression = expression;\n }\n\n Throw.prototype.children = ['expression'];\n\n Throw.prototype.isStatement = YES;\n\n Throw.prototype.jumps = NO;\n\n Throw.prototype.makeReturn = THIS;\n\n Throw.prototype.compileNode = function(o) {\n return [].concat(this.makeCode(this.tab + \"throw \"), this.expression.compileToFragments(o), this.makeCode(\";\"));\n };\n\n return Throw;\n\n })(Base);\n\n exports.Existence = Existence = (function(superClass1) {\n extend1(Existence, superClass1);\n\n function Existence(expression) {\n this.expression = expression;\n }\n\n Existence.prototype.children = ['expression'];\n\n Existence.prototype.invert = NEGATE;\n\n Existence.prototype.compileNode = function(o) {\n var cmp, cnj, code, ref3;\n this.expression.front = this.front;\n code = this.expression.compile(o, LEVEL_OP);\n if (IDENTIFIER.test(code) && !o.scope.check(code)) {\n ref3 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = ref3[0], cnj = ref3[1];\n code = \"typeof \" + code + \" \" + cmp + \" \\\"undefined\\\" \" + cnj + \" \" + code + \" \" + cmp + \" null\";\n } else {\n code = code + \" \" + (this.negated ? '==' : '!=') + \" null\";\n }\n return [this.makeCode(o.level <= LEVEL_COND ? code : \"(\" + code + \")\")];\n };\n\n return Existence;\n\n })(Base);\n\n exports.Parens = Parens = (function(superClass1) {\n extend1(Parens, superClass1);\n\n function Parens(body1) {\n this.body = body1;\n }\n\n Parens.prototype.children = ['body'];\n\n Parens.prototype.unwrap = function() {\n return this.body;\n };\n\n Parens.prototype.isComplex = function() {\n return this.body.isComplex();\n };\n\n Parens.prototype.compileNode = function(o) {\n var bare, expr, fragments;\n expr = this.body.unwrap();\n if (expr instanceof Value && expr.isAtomic()) {\n expr.front = this.front;\n return expr.compileToFragments(o);\n }\n fragments = expr.compileToFragments(o, LEVEL_PAREN);\n bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));\n if (bare) {\n return fragments;\n } else {\n return this.wrapInBraces(fragments);\n }\n };\n\n return Parens;\n\n })(Base);\n\n exports.For = For = (function(superClass1) {\n extend1(For, superClass1);\n\n function For(body, source) {\n var ref3;\n this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;\n this.body = Block.wrap([body]);\n this.own = !!source.own;\n this.object = !!source.object;\n if (this.object) {\n ref3 = [this.index, this.name], this.name = ref3[0], this.index = ref3[1];\n }\n if (this.index instanceof Value) {\n this.index.error('index cannot be a pattern matching expression');\n }\n this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;\n this.pattern = this.name instanceof Value;\n if (this.range && this.index) {\n this.index.error('indexes do not apply to range loops');\n }\n if (this.range && this.pattern) {\n this.name.error('cannot pattern match over range loops');\n }\n if (this.own && !this.object) {\n this.name.error('cannot use own with for-in');\n }\n this.returns = false;\n }\n\n For.prototype.children = ['body', 'source', 'guard', 'step'];\n\n For.prototype.compileNode = function(o) {\n var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, last, lvar, name, namePart, ref, ref3, ref4, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart;\n body = Block.wrap([this.body]);\n ref3 = body.expressions, last = ref3[ref3.length - 1];\n if ((last != null ? last.jumps() : void 0) instanceof Return) {\n this.returns = false;\n }\n source = this.range ? this.source.base : this.source;\n scope = o.scope;\n if (!this.pattern) {\n name = this.name && (this.name.compile(o, LEVEL_LIST));\n }\n index = this.index && (this.index.compile(o, LEVEL_LIST));\n if (name && !this.pattern) {\n scope.find(name);\n }\n if (index) {\n scope.find(index);\n }\n if (this.returns) {\n rvar = scope.freeVariable('results');\n }\n ivar = (this.object && index) || scope.freeVariable('i', {\n single: true\n });\n kvar = (this.range && name) || index || ivar;\n kvarAssign = kvar !== ivar ? kvar + \" = \" : \"\";\n if (this.step && !this.range) {\n ref4 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST, isComplexOrAssignable)), step = ref4[0], stepVar = ref4[1];\n stepNum = stepVar.match(NUMBER);\n }\n if (this.pattern) {\n name = ivar;\n }\n varPart = '';\n guardPart = '';\n defPart = '';\n idt1 = this.tab + TAB;\n if (this.range) {\n forPartFragments = source.compileToFragments(merge(o, {\n index: ivar,\n name: name,\n step: this.step,\n isComplex: isComplexOrAssignable\n }));\n } else {\n svar = this.source.compile(o, LEVEL_LIST);\n if ((name || this.own) && !IDENTIFIER.test(svar)) {\n defPart += \"\" + this.tab + (ref = scope.freeVariable('ref')) + \" = \" + svar + \";\\n\";\n svar = ref;\n }\n if (name && !this.pattern) {\n namePart = name + \" = \" + svar + \"[\" + kvar + \"]\";\n }\n if (!this.object) {\n if (step !== stepVar) {\n defPart += \"\" + this.tab + step + \";\\n\";\n }\n if (!(this.step && stepNum && (down = parseNum(stepNum[0]) < 0))) {\n lvar = scope.freeVariable('len');\n }\n declare = \"\" + kvarAssign + ivar + \" = 0, \" + lvar + \" = \" + svar + \".length\";\n declareDown = \"\" + kvarAssign + ivar + \" = \" + svar + \".length - 1\";\n compare = ivar + \" < \" + lvar;\n compareDown = ivar + \" >= 0\";\n if (this.step) {\n if (stepNum) {\n if (down) {\n compare = compareDown;\n declare = declareDown;\n }\n } else {\n compare = stepVar + \" > 0 ? \" + compare + \" : \" + compareDown;\n declare = \"(\" + stepVar + \" > 0 ? (\" + declare + \") : \" + declareDown + \")\";\n }\n increment = ivar + \" += \" + stepVar;\n } else {\n increment = \"\" + (kvar !== ivar ? \"++\" + ivar : ivar + \"++\");\n }\n forPartFragments = [this.makeCode(declare + \"; \" + compare + \"; \" + kvarAssign + increment)];\n }\n }\n if (this.returns) {\n resultPart = \"\" + this.tab + rvar + \" = [];\\n\";\n returnResult = \"\\n\" + this.tab + \"return \" + rvar + \";\";\n body.makeReturn(rvar);\n }\n if (this.guard) {\n if (body.expressions.length > 1) {\n body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal(\"continue\")));\n } else {\n if (this.guard) {\n body = Block.wrap([new If(this.guard, body)]);\n }\n }\n }\n if (this.pattern) {\n body.expressions.unshift(new Assign(this.name, new Literal(svar + \"[\" + kvar + \"]\")));\n }\n defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body));\n if (namePart) {\n varPart = \"\\n\" + idt1 + namePart + \";\";\n }\n if (this.object) {\n forPartFragments = [this.makeCode(kvar + \" in \" + svar)];\n if (this.own) {\n guardPart = \"\\n\" + idt1 + \"if (!\" + (utility('hasProp', o)) + \".call(\" + svar + \", \" + kvar + \")) continue;\";\n }\n }\n bodyFragments = body.compileToFragments(merge(o, {\n indent: idt1\n }), LEVEL_TOP);\n if (bodyFragments && (bodyFragments.length > 0)) {\n bodyFragments = [].concat(this.makeCode(\"\\n\"), bodyFragments, this.makeCode(\"\\n\"));\n }\n return [].concat(defPartFragments, this.makeCode(\"\" + (resultPart || '') + this.tab + \"for (\"), forPartFragments, this.makeCode(\") {\" + guardPart + varPart), bodyFragments, this.makeCode(this.tab + \"}\" + (returnResult || '')));\n };\n\n For.prototype.pluckDirectCall = function(o, body) {\n var base, defs, expr, fn, idx, j, len1, ref, ref3, ref4, ref5, ref6, ref7, ref8, ref9, val;\n defs = [];\n ref3 = body.expressions;\n for (idx = j = 0, len1 = ref3.length; j < len1; idx = ++j) {\n expr = ref3[idx];\n expr = expr.unwrapAll();\n if (!(expr instanceof Call)) {\n continue;\n }\n val = (ref4 = expr.variable) != null ? ref4.unwrapAll() : void 0;\n if (!((val instanceof Code) || (val instanceof Value && ((ref5 = val.base) != null ? ref5.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((ref6 = (ref7 = val.properties[0].name) != null ? ref7.value : void 0) === 'call' || ref6 === 'apply')))) {\n continue;\n }\n fn = ((ref8 = val.base) != null ? ref8.unwrapAll() : void 0) || val;\n ref = new Literal(o.scope.freeVariable('fn'));\n base = new Value(ref);\n if (val.base) {\n ref9 = [base, val], val.base = ref9[0], base = ref9[1];\n }\n body.expressions[idx] = new Call(base, expr.args);\n defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\\n'));\n }\n return defs;\n };\n\n return For;\n\n })(While);\n\n exports.Switch = Switch = (function(superClass1) {\n extend1(Switch, superClass1);\n\n function Switch(subject, cases, otherwise) {\n this.subject = subject;\n this.cases = cases;\n this.otherwise = otherwise;\n }\n\n Switch.prototype.children = ['subject', 'cases', 'otherwise'];\n\n Switch.prototype.isStatement = YES;\n\n Switch.prototype.jumps = function(o) {\n var block, conds, j, jumpNode, len1, ref3, ref4, ref5;\n if (o == null) {\n o = {\n block: true\n };\n }\n ref3 = this.cases;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n ref4 = ref3[j], conds = ref4[0], block = ref4[1];\n if (jumpNode = block.jumps(o)) {\n return jumpNode;\n }\n }\n return (ref5 = this.otherwise) != null ? ref5.jumps(o) : void 0;\n };\n\n Switch.prototype.makeReturn = function(res) {\n var j, len1, pair, ref3, ref4;\n ref3 = this.cases;\n for (j = 0, len1 = ref3.length; j < len1; j++) {\n pair = ref3[j];\n pair[1].makeReturn(res);\n }\n if (res) {\n this.otherwise || (this.otherwise = new Block([new Literal('void 0')]));\n }\n if ((ref4 = this.otherwise) != null) {\n ref4.makeReturn(res);\n }\n return this;\n };\n\n Switch.prototype.compileNode = function(o) {\n var block, body, cond, conditions, expr, fragments, i, idt1, idt2, j, k, len1, len2, ref3, ref4, ref5;\n idt1 = o.indent + TAB;\n idt2 = o.indent = idt1 + TAB;\n fragments = [].concat(this.makeCode(this.tab + \"switch (\"), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode(\"false\")), this.makeCode(\") {\\n\"));\n ref3 = this.cases;\n for (i = j = 0, len1 = ref3.length; j < len1; i = ++j) {\n ref4 = ref3[i], conditions = ref4[0], block = ref4[1];\n ref5 = flatten([conditions]);\n for (k = 0, len2 = ref5.length; k < len2; k++) {\n cond = ref5[k];\n if (!this.subject) {\n cond = cond.invert();\n }\n fragments = fragments.concat(this.makeCode(idt1 + \"case \"), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(\":\\n\"));\n }\n if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) {\n fragments = fragments.concat(body, this.makeCode('\\n'));\n }\n if (i === this.cases.length - 1 && !this.otherwise) {\n break;\n }\n expr = this.lastNonComment(block.expressions);\n if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) {\n continue;\n }\n fragments.push(cond.makeCode(idt2 + 'break;\\n'));\n }\n if (this.otherwise && this.otherwise.expressions.length) {\n fragments.push.apply(fragments, [this.makeCode(idt1 + \"default:\\n\")].concat(slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode(\"\\n\")]));\n }\n fragments.push(this.makeCode(this.tab + '}'));\n return fragments;\n };\n\n return Switch;\n\n })(Base);\n\n exports.If = If = (function(superClass1) {\n extend1(If, superClass1);\n\n function If(condition, body1, options) {\n this.body = body1;\n if (options == null) {\n options = {};\n }\n this.condition = options.type === 'unless' ? condition.invert() : condition;\n this.elseBody = null;\n this.isChain = false;\n this.soak = options.soak;\n }\n\n If.prototype.children = ['condition', 'body', 'elseBody'];\n\n If.prototype.bodyNode = function() {\n var ref3;\n return (ref3 = this.body) != null ? ref3.unwrap() : void 0;\n };\n\n If.prototype.elseBodyNode = function() {\n var ref3;\n return (ref3 = this.elseBody) != null ? ref3.unwrap() : void 0;\n };\n\n If.prototype.addElse = function(elseBody) {\n if (this.isChain) {\n this.elseBodyNode().addElse(elseBody);\n } else {\n this.isChain = elseBody instanceof If;\n this.elseBody = this.ensureBlock(elseBody);\n this.elseBody.updateLocationDataIfMissing(elseBody.locationData);\n }\n return this;\n };\n\n If.prototype.isStatement = function(o) {\n var ref3;\n return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((ref3 = this.elseBodyNode()) != null ? ref3.isStatement(o) : void 0);\n };\n\n If.prototype.jumps = function(o) {\n var ref3;\n return this.body.jumps(o) || ((ref3 = this.elseBody) != null ? ref3.jumps(o) : void 0);\n };\n\n If.prototype.compileNode = function(o) {\n if (this.isStatement(o)) {\n return this.compileStatement(o);\n } else {\n return this.compileExpression(o);\n }\n };\n\n If.prototype.makeReturn = function(res) {\n if (res) {\n this.elseBody || (this.elseBody = new Block([new Literal('void 0')]));\n }\n this.body && (this.body = new Block([this.body.makeReturn(res)]));\n this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)]));\n return this;\n };\n\n If.prototype.ensureBlock = function(node) {\n if (node instanceof Block) {\n return node;\n } else {\n return new Block([node]);\n }\n };\n\n If.prototype.compileStatement = function(o) {\n var answer, body, child, cond, exeq, ifPart, indent;\n child = del(o, 'chainChild');\n exeq = del(o, 'isExistentialEquals');\n if (exeq) {\n return new If(this.condition.invert(), this.elseBodyNode(), {\n type: 'if'\n }).compileToFragments(o);\n }\n indent = o.indent + TAB;\n cond = this.condition.compileToFragments(o, LEVEL_PAREN);\n body = this.ensureBlock(this.body).compileToFragments(merge(o, {\n indent: indent\n }));\n ifPart = [].concat(this.makeCode(\"if (\"), cond, this.makeCode(\") {\\n\"), body, this.makeCode(\"\\n\" + this.tab + \"}\"));\n if (!child) {\n ifPart.unshift(this.makeCode(this.tab));\n }\n if (!this.elseBody) {\n return ifPart;\n }\n answer = ifPart.concat(this.makeCode(' else '));\n if (this.isChain) {\n o.chainChild = true;\n answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP));\n } else {\n answer = answer.concat(this.makeCode(\"{\\n\"), this.elseBody.compileToFragments(merge(o, {\n indent: indent\n }), LEVEL_TOP), this.makeCode(\"\\n\" + this.tab + \"}\"));\n }\n return answer;\n };\n\n If.prototype.compileExpression = function(o) {\n var alt, body, cond, fragments;\n cond = this.condition.compileToFragments(o, LEVEL_COND);\n body = this.bodyNode().compileToFragments(o, LEVEL_LIST);\n alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')];\n fragments = cond.concat(this.makeCode(\" ? \"), body, this.makeCode(\" : \"), alt);\n if (o.level >= LEVEL_COND) {\n return this.wrapInBraces(fragments);\n } else {\n return fragments;\n }\n };\n\n If.prototype.unfoldSoak = function() {\n return this.soak && this;\n };\n\n return If;\n\n })(Base);\n\n UTILITIES = {\n extend: function(o) {\n return \"function(child, parent) { for (var key in parent) { if (\" + (utility('hasProp', o)) + \".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }\";\n },\n bind: function() {\n return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }';\n },\n indexOf: function() {\n return \"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }\";\n },\n modulo: function() {\n return \"function(a, b) { return (+a % (b = +b) + b) % b; }\";\n },\n hasProp: function() {\n return '{}.hasOwnProperty';\n },\n slice: function() {\n return '[].slice';\n }\n };\n\n LEVEL_TOP = 1;\n\n LEVEL_PAREN = 2;\n\n LEVEL_LIST = 3;\n\n LEVEL_COND = 4;\n\n LEVEL_OP = 5;\n\n LEVEL_ACCESS = 6;\n\n TAB = ' ';\n\n IDENTIFIER = /^(?!\\d)[$\\w\\x7f-\\uffff]+$/;\n\n SIMPLENUM = /^[+-]?\\d+$/;\n\n HEXNUM = /^[+-]?0x[\\da-f]+/i;\n\n NUMBER = /^[+-]?(?:0x[\\da-f]+|\\d*\\.?\\d+(?:e[+-]?\\d+)?)$/i;\n\n IS_STRING = /^['\"]/;\n\n IS_REGEX = /^\\//;\n\n utility = function(name, o) {\n var ref, root;\n root = o.scope.root;\n if (name in root.utilities) {\n return root.utilities[name];\n } else {\n ref = root.freeVariable(name);\n root.assign(ref, UTILITIES[name](o));\n return root.utilities[name] = ref;\n }\n };\n\n multident = function(code, tab) {\n code = code.replace(/\\n/g, '$&' + tab);\n return code.replace(/\\s+$/, '');\n };\n\n parseNum = function(x) {\n if (x == null) {\n return 0;\n } else if (x.match(HEXNUM)) {\n return parseInt(x, 16);\n } else {\n return parseFloat(x);\n }\n };\n\n isLiteralArguments = function(node) {\n return node instanceof Literal && node.value === 'arguments' && !node.asKey;\n };\n\n isLiteralThis = function(node) {\n return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper);\n };\n\n isComplexOrAssignable = function(node) {\n return node.isComplex() || (typeof node.isAssignable === \"function\" ? node.isAssignable() : void 0);\n };\n\n unfoldSoak = function(o, parent, name) {\n var ifn;\n if (!(ifn = parent[name].unfoldSoak(o))) {\n return;\n }\n parent[name] = ifn.body;\n ifn.body = new Value(parent);\n return ifn;\n };\n\n}).call(this);\n","/* parser generated by jison 0.4.15 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,20],$V1=[1,75],$V2=[1,71],$V3=[1,76],$V4=[1,77],$V5=[1,73],$V6=[1,74],$V7=[1,50],$V8=[1,52],$V9=[1,53],$Va=[1,54],$Vb=[1,55],$Vc=[1,45],$Vd=[1,46],$Ve=[1,27],$Vf=[1,60],$Vg=[1,61],$Vh=[1,70],$Vi=[1,43],$Vj=[1,26],$Vk=[1,58],$Vl=[1,59],$Vm=[1,57],$Vn=[1,38],$Vo=[1,44],$Vp=[1,56],$Vq=[1,65],$Vr=[1,66],$Vs=[1,67],$Vt=[1,68],$Vu=[1,42],$Vv=[1,64],$Vw=[1,29],$Vx=[1,30],$Vy=[1,31],$Vz=[1,32],$VA=[1,33],$VB=[1,34],$VC=[1,35],$VD=[1,78],$VE=[1,6,26,34,109],$VF=[1,88],$VG=[1,81],$VH=[1,80],$VI=[1,79],$VJ=[1,82],$VK=[1,83],$VL=[1,84],$VM=[1,85],$VN=[1,86],$VO=[1,87],$VP=[1,91],$VQ=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$VR=[1,97],$VS=[1,98],$VT=[1,99],$VU=[1,100],$VV=[1,102],$VW=[1,103],$VX=[1,96],$VY=[2,115],$VZ=[1,6,25,26,34,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$V_=[2,82],$V$=[1,108],$V01=[2,61],$V11=[1,112],$V21=[1,117],$V31=[1,118],$V41=[1,120],$V51=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$V61=[2,79],$V71=[1,6,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$V81=[1,155],$V91=[1,157],$Va1=[1,152],$Vb1=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,87,91,92,93,98,100,109,111,112,113,117,118,133,136,137,140,141,142,143,144,145,146,147,148,149],$Vc1=[2,98],$Vd1=[1,6,25,26,34,49,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$Ve1=[1,6,25,26,34,46,49,56,61,64,73,74,75,76,78,80,81,85,87,91,92,93,98,100,109,111,112,113,117,118,124,125,133,136,137,140,141,142,143,144,145,146,147,148,149],$Vf1=[1,207],$Vg1=[1,206],$Vh1=[1,6,25,26,34,38,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$Vi1=[2,59],$Vj1=[1,217],$Vk1=[6,25,26,56,61],$Vl1=[6,25,26,46,56,61,64],$Vm1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,143,145,146,147,148],$Vn1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133],$Vo1=[73,74,75,76,78,81,91,92],$Vp1=[1,236],$Vq1=[2,136],$Vr1=[1,6,25,26,34,46,56,61,64,73,74,75,76,78,80,81,85,91,92,93,98,100,109,111,112,113,117,118,124,125,133,136,137,142,143,144,145,146,147,148],$Vs1=[1,245],$Vt1=[6,25,26,61,93,98],$Vu1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,118,133],$Vv1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,112,118,133],$Vw1=[124,125],$Vx1=[61,124,125],$Vy1=[1,256],$Vz1=[6,25,26,61,85],$VA1=[6,25,26,49,61,85],$VB1=[6,25,26,46,49,61,85],$VC1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,145,146,147,148],$VD1=[11,28,30,32,33,36,37,40,41,42,43,44,52,53,54,58,59,80,83,86,90,95,96,97,103,107,108,111,113,115,117,126,132,134,135,136,137,138,140,141],$VE1=[2,125],$VF1=[6,25,26],$VG1=[2,60],$VH1=[1,270],$VI1=[1,271],$VJ1=[1,6,25,26,34,56,61,64,80,85,93,98,100,105,106,109,111,112,113,117,118,128,130,133,136,137,142,143,144,145,146,147,148],$VK1=[26,128,130],$VL1=[1,6,26,34,56,61,64,80,85,93,98,100,109,112,118,133],$VM1=[2,74],$VN1=[1,293],$VO1=[1,294],$VP1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,128,133,136,137,142,143,144,145,146,147,148],$VQ1=[1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,113,117,118,133],$VR1=[1,305],$VS1=[1,306],$VT1=[6,25,26,61],$VU1=[1,6,25,26,34,56,61,64,80,85,93,98,100,105,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],$VV1=[25,61];\nvar parser = {trace: function trace() { },\nyy: {},\nsymbols_: {\"error\":2,\"Root\":3,\"Body\":4,\"Line\":5,\"TERMINATOR\":6,\"Expression\":7,\"Statement\":8,\"Return\":9,\"Comment\":10,\"STATEMENT\":11,\"Value\":12,\"Invocation\":13,\"Code\":14,\"Operation\":15,\"Assign\":16,\"If\":17,\"Try\":18,\"While\":19,\"For\":20,\"Switch\":21,\"Class\":22,\"Throw\":23,\"Block\":24,\"INDENT\":25,\"OUTDENT\":26,\"Identifier\":27,\"IDENTIFIER\":28,\"AlphaNumeric\":29,\"NUMBER\":30,\"String\":31,\"STRING\":32,\"STRING_START\":33,\"STRING_END\":34,\"Regex\":35,\"REGEX\":36,\"REGEX_START\":37,\"REGEX_END\":38,\"Literal\":39,\"JS\":40,\"DEBUGGER\":41,\"UNDEFINED\":42,\"NULL\":43,\"BOOL\":44,\"Assignable\":45,\"=\":46,\"AssignObj\":47,\"ObjAssignable\":48,\":\":49,\"SimpleObjAssignable\":50,\"ThisProperty\":51,\"RETURN\":52,\"HERECOMMENT\":53,\"PARAM_START\":54,\"ParamList\":55,\"PARAM_END\":56,\"FuncGlyph\":57,\"->\":58,\"=>\":59,\"OptComma\":60,\",\":61,\"Param\":62,\"ParamVar\":63,\"...\":64,\"Array\":65,\"Object\":66,\"Splat\":67,\"SimpleAssignable\":68,\"Accessor\":69,\"Parenthetical\":70,\"Range\":71,\"This\":72,\".\":73,\"?.\":74,\"::\":75,\"?::\":76,\"Index\":77,\"INDEX_START\":78,\"IndexValue\":79,\"INDEX_END\":80,\"INDEX_SOAK\":81,\"Slice\":82,\"{\":83,\"AssignList\":84,\"}\":85,\"CLASS\":86,\"EXTENDS\":87,\"OptFuncExist\":88,\"Arguments\":89,\"SUPER\":90,\"FUNC_EXIST\":91,\"CALL_START\":92,\"CALL_END\":93,\"ArgList\":94,\"THIS\":95,\"@\":96,\"[\":97,\"]\":98,\"RangeDots\":99,\"..\":100,\"Arg\":101,\"SimpleArgs\":102,\"TRY\":103,\"Catch\":104,\"FINALLY\":105,\"CATCH\":106,\"THROW\":107,\"(\":108,\")\":109,\"WhileSource\":110,\"WHILE\":111,\"WHEN\":112,\"UNTIL\":113,\"Loop\":114,\"LOOP\":115,\"ForBody\":116,\"FOR\":117,\"BY\":118,\"ForStart\":119,\"ForSource\":120,\"ForVariables\":121,\"OWN\":122,\"ForValue\":123,\"FORIN\":124,\"FOROF\":125,\"SWITCH\":126,\"Whens\":127,\"ELSE\":128,\"When\":129,\"LEADING_WHEN\":130,\"IfBlock\":131,\"IF\":132,\"POST_IF\":133,\"UNARY\":134,\"UNARY_MATH\":135,\"-\":136,\"+\":137,\"YIELD\":138,\"FROM\":139,\"--\":140,\"++\":141,\"?\":142,\"MATH\":143,\"**\":144,\"SHIFT\":145,\"COMPARE\":146,\"LOGIC\":147,\"RELATION\":148,\"COMPOUND_ASSIGN\":149,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"TERMINATOR\",11:\"STATEMENT\",25:\"INDENT\",26:\"OUTDENT\",28:\"IDENTIFIER\",30:\"NUMBER\",32:\"STRING\",33:\"STRING_START\",34:\"STRING_END\",36:\"REGEX\",37:\"REGEX_START\",38:\"REGEX_END\",40:\"JS\",41:\"DEBUGGER\",42:\"UNDEFINED\",43:\"NULL\",44:\"BOOL\",46:\"=\",49:\":\",52:\"RETURN\",53:\"HERECOMMENT\",54:\"PARAM_START\",56:\"PARAM_END\",58:\"->\",59:\"=>\",61:\",\",64:\"...\",73:\".\",74:\"?.\",75:\"::\",76:\"?::\",78:\"INDEX_START\",80:\"INDEX_END\",81:\"INDEX_SOAK\",83:\"{\",85:\"}\",86:\"CLASS\",87:\"EXTENDS\",90:\"SUPER\",91:\"FUNC_EXIST\",92:\"CALL_START\",93:\"CALL_END\",95:\"THIS\",96:\"@\",97:\"[\",98:\"]\",100:\"..\",103:\"TRY\",105:\"FINALLY\",106:\"CATCH\",107:\"THROW\",108:\"(\",109:\")\",111:\"WHILE\",112:\"WHEN\",113:\"UNTIL\",115:\"LOOP\",117:\"FOR\",118:\"BY\",122:\"OWN\",124:\"FORIN\",125:\"FOROF\",126:\"SWITCH\",128:\"ELSE\",130:\"LEADING_WHEN\",132:\"IF\",133:\"POST_IF\",134:\"UNARY\",135:\"UNARY_MATH\",136:\"-\",137:\"+\",138:\"YIELD\",139:\"FROM\",140:\"--\",141:\"++\",142:\"?\",143:\"MATH\",144:\"**\",145:\"SHIFT\",146:\"COMPARE\",147:\"LOGIC\",148:\"RELATION\",149:\"COMPOUND_ASSIGN\"},\nproductions_: [0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,3],[47,5],[47,1],[50,1],[50,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[57,1],[57,1],[60,0],[60,1],[55,0],[55,1],[55,3],[55,4],[55,6],[62,1],[62,2],[62,3],[62,1],[63,1],[63,1],[63,1],[63,1],[67,2],[68,1],[68,2],[68,2],[68,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[69,2],[69,2],[69,2],[69,2],[69,1],[69,1],[77,3],[77,2],[79,1],[79,1],[66,4],[84,0],[84,1],[84,3],[84,4],[84,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[88,0],[88,1],[89,2],[89,4],[72,1],[72,1],[51,2],[65,2],[65,4],[99,1],[99,1],[71,5],[82,3],[82,2],[82,2],[82,1],[94,1],[94,3],[94,4],[94,4],[94,6],[101,1],[101,1],[101,1],[102,1],[102,3],[18,2],[18,3],[18,4],[18,5],[104,3],[104,3],[104,2],[23,2],[70,3],[70,5],[110,2],[110,4],[110,2],[110,4],[19,2],[19,2],[19,2],[19,1],[114,2],[114,2],[20,2],[20,2],[20,2],[116,2],[116,4],[116,2],[119,2],[119,3],[123,1],[123,1],[123,1],[123,1],[121,1],[121,3],[120,2],[120,2],[120,4],[120,4],[120,4],[120,6],[120,6],[21,5],[21,7],[21,4],[21,6],[127,1],[127,2],[129,3],[129,4],[131,3],[131,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\nreturn this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block);\nbreak;\ncase 2:\nreturn this.$ = $$[$0];\nbreak;\ncase 3:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]]));\nbreak;\ncase 4:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0]));\nbreak;\ncase 5:\nthis.$ = $$[$0-1];\nbreak;\ncase 6: case 7: case 8: case 9: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: case 27: case 32: case 34: case 47: case 48: case 49: case 50: case 51: case 59: case 60: case 70: case 71: case 72: case 73: case 78: case 79: case 82: case 86: case 92: case 136: case 137: case 139: case 169: case 170: case 186: case 192:\nthis.$ = $$[$0];\nbreak;\ncase 10: case 25: case 26: case 28: case 30: case 33: case 35:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));\nbreak;\ncase 23:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block);\nbreak;\ncase 24: case 31: case 93:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);\nbreak;\ncase 29: case 149:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1]));\nbreak;\ncase 36:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined);\nbreak;\ncase 37:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null);\nbreak;\ncase 38:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0]));\nbreak;\ncase 39:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0]));\nbreak;\ncase 40:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0]));\nbreak;\ncase 41:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1]));\nbreak;\ncase 42: case 75: case 80: case 81: case 83: case 84: case 85: case 171: case 172:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));\nbreak;\ncase 43:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object', {\n operatorToken: yy.addLocationDataFn(_$[$0-1])(new yy.Literal($$[$0-1]))\n }));\nbreak;\ncase 44:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object', {\n operatorToken: yy.addLocationDataFn(_$[$0-3])(new yy.Literal($$[$0-3]))\n }));\nbreak;\ncase 45:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], null, {\n operatorToken: yy.addLocationDataFn(_$[$0-1])(new yy.Literal($$[$0-1]))\n }));\nbreak;\ncase 46:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], null, {\n operatorToken: yy.addLocationDataFn(_$[$0-3])(new yy.Literal($$[$0-3]))\n }));\nbreak;\ncase 52:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0]));\nbreak;\ncase 53:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return);\nbreak;\ncase 54:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0]));\nbreak;\ncase 55:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1]));\nbreak;\ncase 56:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1]));\nbreak;\ncase 57:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func');\nbreak;\ncase 58:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc');\nbreak;\ncase 61: case 98:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);\nbreak;\ncase 62: case 99: case 131: case 173:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);\nbreak;\ncase 63: case 100: case 132:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));\nbreak;\ncase 64: case 101: case 133:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));\nbreak;\ncase 65: case 102: case 135:\nthis.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));\nbreak;\ncase 66:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0]));\nbreak;\ncase 67:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true));\nbreak;\ncase 68:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0]));\nbreak;\ncase 69: case 138:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Expansion);\nbreak;\ncase 74:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1]));\nbreak;\ncase 76:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0]));\nbreak;\ncase 77:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0])));\nbreak;\ncase 87:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0]));\nbreak;\ncase 88:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak'));\nbreak;\ncase 89:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);\nbreak;\ncase 90:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);\nbreak;\ncase 91:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype')));\nbreak;\ncase 94:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], {\n soak: true\n }));\nbreak;\ncase 95:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0]));\nbreak;\ncase 96:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0]));\nbreak;\ncase 97:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated));\nbreak;\ncase 103:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class);\nbreak;\ncase 104:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0]));\nbreak;\ncase 105:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0]));\nbreak;\ncase 106:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0]));\nbreak;\ncase 107:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0]));\nbreak;\ncase 108:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0]));\nbreak;\ncase 109:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0]));\nbreak;\ncase 110:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0]));\nbreak;\ncase 111: case 112:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));\nbreak;\ncase 113:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]));\nbreak;\ncase 114:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0]));\nbreak;\ncase 115:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false);\nbreak;\ncase 116:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true);\nbreak;\ncase 117:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]);\nbreak;\ncase 118: case 134:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);\nbreak;\ncase 119: case 120:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));\nbreak;\ncase 121:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this'));\nbreak;\ncase 122:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([]));\nbreak;\ncase 123:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2]));\nbreak;\ncase 124:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive');\nbreak;\ncase 125:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive');\nbreak;\ncase 126:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]));\nbreak;\ncase 127:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1]));\nbreak;\ncase 128:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0]));\nbreak;\ncase 129:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1]));\nbreak;\ncase 130:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0]));\nbreak;\ncase 140:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0]));\nbreak;\ncase 141:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0]));\nbreak;\ncase 142:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]));\nbreak;\ncase 143:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0]));\nbreak;\ncase 144:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]));\nbreak;\ncase 145:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]);\nbreak;\ncase 146:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]);\nbreak;\ncase 147:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]);\nbreak;\ncase 148:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0]));\nbreak;\ncase 150:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2]));\nbreak;\ncase 151:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0]));\nbreak;\ncase 152:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {\n guard: $$[$0]\n }));\nbreak;\ncase 153:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], {\n invert: true\n }));\nbreak;\ncase 154:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {\n invert: true,\n guard: $$[$0]\n }));\nbreak;\ncase 155:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0]));\nbreak;\ncase 156: case 157:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));\nbreak;\ncase 158:\nthis.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]);\nbreak;\ncase 159:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0]));\nbreak;\ncase 160:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]]))));\nbreak;\ncase 161: case 162:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));\nbreak;\ncase 163:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1]));\nbreak;\ncase 164:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({\n source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0]))\n });\nbreak;\ncase 165:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({\n source: yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])),\n step: $$[$0]\n });\nbreak;\ncase 166:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () {\n $$[$0].own = $$[$0-1].own;\n $$[$0].name = $$[$0-1][0];\n $$[$0].index = $$[$0-1][1];\n return $$[$0];\n }()));\nbreak;\ncase 167:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]);\nbreak;\ncase 168:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {\n $$[$0].own = true;\n return $$[$0];\n }()));\nbreak;\ncase 174:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]);\nbreak;\ncase 175:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({\n source: $$[$0]\n });\nbreak;\ncase 176:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({\n source: $$[$0],\n object: true\n });\nbreak;\ncase 177:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({\n source: $$[$0-2],\n guard: $$[$0]\n });\nbreak;\ncase 178:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({\n source: $$[$0-2],\n guard: $$[$0],\n object: true\n });\nbreak;\ncase 179:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({\n source: $$[$0-2],\n step: $$[$0]\n });\nbreak;\ncase 180:\nthis.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({\n source: $$[$0-4],\n guard: $$[$0-2],\n step: $$[$0]\n });\nbreak;\ncase 181:\nthis.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({\n source: $$[$0-4],\n step: $$[$0-2],\n guard: $$[$0]\n });\nbreak;\ncase 182:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1]));\nbreak;\ncase 183:\nthis.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]));\nbreak;\ncase 184:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1]));\nbreak;\ncase 185:\nthis.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1]));\nbreak;\ncase 187:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0]));\nbreak;\ncase 188:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]);\nbreak;\ncase 189:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]);\nbreak;\ncase 190:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {\n type: $$[$0-2]\n }));\nbreak;\ncase 191:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {\n type: $$[$0-2]\n }))));\nbreak;\ncase 193:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0]));\nbreak;\ncase 194: case 195:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {\n type: $$[$0-1],\n statement: true\n }));\nbreak;\ncase 196: case 197: case 200: case 201:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0]));\nbreak;\ncase 198:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0]));\nbreak;\ncase 199:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0]));\nbreak;\ncase 202:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-2].concat($$[$0-1]), $$[$0]));\nbreak;\ncase 203:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0]));\nbreak;\ncase 204:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0]));\nbreak;\ncase 205:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true));\nbreak;\ncase 206:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true));\nbreak;\ncase 207:\nthis.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1]));\nbreak;\ncase 208:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0]));\nbreak;\ncase 209:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0]));\nbreak;\ncase 210: case 211: case 212: case 213: case 214:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));\nbreak;\ncase 215:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {\n if ($$[$0-1].charAt(0) === '!') {\n return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert();\n } else {\n return new yy.Op($$[$0-1], $$[$0-2], $$[$0]);\n }\n }()));\nbreak;\ncase 216:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1]));\nbreak;\ncase 217:\nthis.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]));\nbreak;\ncase 218:\nthis.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2]));\nbreak;\ncase 219:\nthis.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0]));\nbreak;\n}\n},\ntable: [{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{1:[3]},{1:[2,2],6:$VD},o($VE,[2,3]),o($VE,[2,6],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VE,[2,7],{119:69,110:92,116:93,111:$Vq,113:$Vr,117:$Vt,133:$VP}),o($VQ,[2,11],{88:94,69:95,77:101,73:$VR,74:$VS,75:$VT,76:$VU,78:$VV,81:$VW,91:$VX,92:$VY}),o($VQ,[2,12],{77:101,88:104,69:105,73:$VR,74:$VS,75:$VT,76:$VU,78:$VV,81:$VW,91:$VX,92:$VY}),o($VQ,[2,13]),o($VQ,[2,14]),o($VQ,[2,15]),o($VQ,[2,16]),o($VQ,[2,17]),o($VQ,[2,18]),o($VQ,[2,19]),o($VQ,[2,20]),o($VQ,[2,21]),o($VQ,[2,22]),o($VQ,[2,8]),o($VQ,[2,9]),o($VQ,[2,10]),o($VZ,$V_,{46:[1,106]}),o($VZ,[2,83]),o($VZ,[2,84]),o($VZ,[2,85]),o($VZ,[2,86]),o([1,6,25,26,34,38,56,61,64,73,74,75,76,78,80,81,85,91,93,98,100,109,111,112,113,117,118,133,136,137,142,143,144,145,146,147,148],[2,113],{89:107,92:$V$}),o([6,25,56,61],$V01,{55:109,62:110,63:111,27:113,51:114,65:115,66:116,28:$V1,64:$V11,83:$Vh,96:$V21,97:$V31}),{24:119,25:$V41},{7:121,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:123,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:124,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:125,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:127,8:126,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,139:[1,128],140:$VB,141:$VC},{12:130,13:131,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:132,51:63,65:47,66:48,68:129,70:23,71:24,72:25,83:$Vh,90:$Vj,95:$Vk,96:$Vl,97:$Vm,108:$Vp},{12:130,13:131,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:132,51:63,65:47,66:48,68:133,70:23,71:24,72:25,83:$Vh,90:$Vj,95:$Vk,96:$Vl,97:$Vm,108:$Vp},o($V51,$V61,{87:[1,137],140:[1,134],141:[1,135],149:[1,136]}),o($VQ,[2,192],{128:[1,138]}),{24:139,25:$V41},{24:140,25:$V41},o($VQ,[2,158]),{24:141,25:$V41},{7:142,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($V71,[2,103],{39:22,70:23,71:24,72:25,65:47,66:48,29:49,35:51,27:62,51:63,31:72,12:130,13:131,45:132,24:144,68:146,25:$V41,28:$V1,30:$V2,32:$V3,33:$V4,36:$V5,37:$V6,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,83:$Vh,87:[1,145],90:$Vj,95:$Vk,96:$Vl,97:$Vm,108:$Vp}),{7:147,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,142,143,144,145,146,147,148],[2,53],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,8:122,7:148,11:$V0,28:$V1,30:$V2,32:$V3,33:$V4,36:$V5,37:$V6,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,52:$Vc,53:$Vd,54:$Ve,58:$Vf,59:$Vg,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,115:$Vs,126:$Vu,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC}),o($VQ,[2,54]),o($V51,[2,80]),o($V51,[2,81]),o($VZ,[2,32]),o($VZ,[2,33]),o($VZ,[2,34]),o($VZ,[2,35]),o($VZ,[2,36]),o($VZ,[2,37]),o($VZ,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:151,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:$V81,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,94:153,95:$Vk,96:$Vl,97:$Vm,98:$Va1,101:154,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VZ,[2,119]),o($VZ,[2,120],{27:158,28:$V1}),{25:[2,57]},{25:[2,58]},o($Vb1,[2,75]),o($Vb1,[2,78]),{7:159,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:160,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:161,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:163,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:$V41,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{27:168,28:$V1,51:169,65:170,66:171,71:164,83:$Vh,96:$V21,97:$Vm,121:165,122:[1,166],123:167},{120:172,124:[1,173],125:[1,174]},o([6,25,61,85],$Vc1,{31:72,84:175,47:176,48:177,50:178,10:179,29:180,27:181,51:182,28:$V1,30:$V2,32:$V3,33:$V4,53:$Vd,96:$V21}),o($Vd1,[2,26]),o($Vd1,[2,27]),o($VZ,[2,30]),{12:130,13:183,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:132,51:63,65:47,66:48,68:184,70:23,71:24,72:25,83:$Vh,90:$Vj,95:$Vk,96:$Vl,97:$Vm,108:$Vp},o($Ve1,[2,25]),o($Vd1,[2,28]),{4:185,5:3,7:4,8:5,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VE,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,5:186,11:$V0,28:$V1,30:$V2,32:$V3,33:$V4,36:$V5,37:$V6,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,52:$Vc,53:$Vd,54:$Ve,58:$Vf,59:$Vg,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,111:$Vq,113:$Vr,115:$Vs,117:$Vt,126:$Vu,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC}),o($VQ,[2,207]),{7:187,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:188,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:189,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:190,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:191,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:192,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:193,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:194,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:195,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,157]),o($VQ,[2,162]),{7:196,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,156]),o($VQ,[2,161]),{89:197,92:$V$},o($Vb1,[2,76]),{92:[2,116]},{27:198,28:$V1},{27:199,28:$V1},o($Vb1,[2,91],{27:200,28:$V1}),{27:201,28:$V1},o($Vb1,[2,92]),{7:203,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$Vf1,65:47,66:48,68:36,70:23,71:24,72:25,79:202,82:204,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,99:205,100:$Vg1,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{77:208,78:$VV,81:$VW},{89:209,92:$V$},o($Vb1,[2,77]),{6:[1,211],7:210,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,212],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vh1,[2,114]),{7:215,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:$V81,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,93:[1,213],94:214,95:$Vk,96:$Vl,97:$Vm,101:154,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([6,25],$Vi1,{60:218,56:[1,216],61:$Vj1}),o($Vk1,[2,62]),o($Vk1,[2,66],{46:[1,220],64:[1,219]}),o($Vk1,[2,69]),o($Vl1,[2,70]),o($Vl1,[2,71]),o($Vl1,[2,72]),o($Vl1,[2,73]),{27:158,28:$V1},{7:215,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:$V81,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,94:153,95:$Vk,96:$Vl,97:$Vm,98:$Va1,101:154,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,56]),{4:222,5:3,7:4,8:5,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,221],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,136,137,143,144,145,146,147,148],[2,196],{119:69,110:89,116:90,142:$VI}),{110:92,111:$Vq,113:$Vr,116:93,117:$Vt,119:69,133:$VP},o($Vm1,[2,197],{119:69,110:89,116:90,142:$VI,144:$VK}),o($Vm1,[2,198],{119:69,110:89,116:90,142:$VI,144:$VK}),o($Vm1,[2,199],{119:69,110:89,116:90,142:$VI,144:$VK}),o($VQ,[2,200],{119:69,110:92,116:93}),o($Vn1,[2,201],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{7:223,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,203],{73:$V61,74:$V61,75:$V61,76:$V61,78:$V61,81:$V61,91:$V61,92:$V61}),{69:95,73:$VR,74:$VS,75:$VT,76:$VU,77:101,78:$VV,81:$VW,88:94,91:$VX,92:$VY},{69:105,73:$VR,74:$VS,75:$VT,76:$VU,77:101,78:$VV,81:$VW,88:104,91:$VX,92:$VY},o($Vo1,$V_),o($VQ,[2,204],{73:$V61,74:$V61,75:$V61,76:$V61,78:$V61,81:$V61,91:$V61,92:$V61}),o($VQ,[2,205]),o($VQ,[2,206]),{6:[1,226],7:224,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,225],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:227,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{24:228,25:$V41,132:[1,229]},o($VQ,[2,141],{104:230,105:[1,231],106:[1,232]}),o($VQ,[2,155]),o($VQ,[2,163]),{25:[1,233],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{127:234,129:235,130:$Vp1},o($VQ,[2,104]),{7:237,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($V71,[2,107],{24:238,25:$V41,73:$V61,74:$V61,75:$V61,76:$V61,78:$V61,81:$V61,91:$V61,92:$V61,87:[1,239]}),o($Vn1,[2,148],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vn1,[2,52],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{6:$VD,109:[1,240]},{4:241,5:3,7:4,8:5,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([6,25,61,98],$Vq1,{119:69,110:89,116:90,99:242,64:[1,243],100:$Vg1,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vr1,[2,122]),o([6,25,98],$Vi1,{60:244,61:$Vs1}),o($Vt1,[2,131]),{7:215,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:$V81,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,94:246,95:$Vk,96:$Vl,97:$Vm,101:154,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vt1,[2,137]),o($Vt1,[2,138]),o($Ve1,[2,121]),{24:247,25:$V41,110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},o($Vu1,[2,151],{119:69,110:89,116:90,111:$Vq,112:[1,248],113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vu1,[2,153],{119:69,110:89,116:90,111:$Vq,112:[1,249],113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ,[2,159]),o($Vv1,[2,160],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,133,136,137,142,143,144,145,146,147,148],[2,164],{118:[1,250]}),o($Vw1,[2,167]),{27:168,28:$V1,51:169,65:170,66:171,83:$Vh,96:$V21,97:$V31,121:251,123:167},o($Vw1,[2,173],{61:[1,252]}),o($Vx1,[2,169]),o($Vx1,[2,170]),o($Vx1,[2,171]),o($Vx1,[2,172]),o($VQ,[2,166]),{7:253,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:254,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([6,25,85],$Vi1,{60:255,61:$Vy1}),o($Vz1,[2,99]),o($Vz1,[2,42],{49:[1,257]}),o($VA1,[2,50],{46:[1,258]}),o($Vz1,[2,47]),o($VA1,[2,51]),o($VB1,[2,48]),o($VB1,[2,49]),{38:[1,259],69:105,73:$VR,74:$VS,75:$VT,76:$VU,77:101,78:$VV,81:$VW,88:104,91:$VX,92:$VY},o($Vo1,$V61),{6:$VD,34:[1,260]},o($VE,[2,4]),o($VC1,[2,208],{119:69,110:89,116:90,142:$VI,143:$VJ,144:$VK}),o($VC1,[2,209],{119:69,110:89,116:90,142:$VI,143:$VJ,144:$VK}),o($Vm1,[2,210],{119:69,110:89,116:90,142:$VI,144:$VK}),o($Vm1,[2,211],{119:69,110:89,116:90,142:$VI,144:$VK}),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,145,146,147,148],[2,212],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK}),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,146,147],[2,213],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,148:$VO}),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,147],[2,214],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,148:$VO}),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,118,133,146,147,148],[2,215],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL}),o($Vv1,[2,195],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vv1,[2,194],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vh1,[2,111]),o($Vb1,[2,87]),o($Vb1,[2,88]),o($Vb1,[2,89]),o($Vb1,[2,90]),{80:[1,261]},{64:$Vf1,80:[2,95],99:262,100:$Vg1,110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{80:[2,96]},{7:263,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,80:[2,130],83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VD1,[2,124]),o($VD1,$VE1),o($Vb1,[2,94]),o($Vh1,[2,112]),o($Vn1,[2,39],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{7:264,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:265,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vh1,[2,117]),o([6,25,93],$Vi1,{60:266,61:$Vs1}),o($Vt1,$Vq1,{119:69,110:89,116:90,64:[1,267],111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{57:268,58:$Vf,59:$Vg},o($VF1,$VG1,{63:111,27:113,51:114,65:115,66:116,62:269,28:$V1,64:$V11,83:$Vh,96:$V21,97:$V31}),{6:$VH1,25:$VI1},o($Vk1,[2,67]),{7:272,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VJ1,[2,23]),{6:$VD,26:[1,273]},o($Vn1,[2,202],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vn1,[2,216],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{7:274,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:275,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vn1,[2,219],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ,[2,193]),{7:276,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,142],{105:[1,277]}),{24:278,25:$V41},{24:281,25:$V41,27:279,28:$V1,66:280,83:$Vh},{127:282,129:235,130:$Vp1},{26:[1,283],128:[1,284],129:285,130:$Vp1},o($VK1,[2,186]),{7:287,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,102:286,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VL1,[2,105],{119:69,110:89,116:90,24:288,25:$V41,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ,[2,108]),{7:289,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VZ,[2,149]),{6:$VD,26:[1,290]},{7:291,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o([11,28,30,32,33,36,37,40,41,42,43,44,52,53,54,58,59,83,86,90,95,96,97,103,107,108,111,113,115,117,126,132,134,135,136,137,138,140,141],$VE1,{6:$VM1,25:$VM1,61:$VM1,98:$VM1}),{6:$VN1,25:$VO1,98:[1,292]},o([6,25,26,93,98],$VG1,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,70:23,71:24,72:25,57:28,68:36,131:37,110:39,114:40,116:41,65:47,66:48,29:49,35:51,27:62,51:63,119:69,31:72,8:122,67:156,7:215,101:295,11:$V0,28:$V1,30:$V2,32:$V3,33:$V4,36:$V5,37:$V6,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,52:$Vc,53:$Vd,54:$Ve,58:$Vf,59:$Vg,64:$V91,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,111:$Vq,113:$Vr,115:$Vs,117:$Vt,126:$Vu,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC}),o($VF1,$Vi1,{60:296,61:$Vs1}),o($VP1,[2,190]),{7:297,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:298,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:299,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vw1,[2,168]),{27:168,28:$V1,51:169,65:170,66:171,83:$Vh,96:$V21,97:$V31,123:300},o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,113,117,133],[2,175],{119:69,110:89,116:90,112:[1,301],118:[1,302],136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ1,[2,176],{119:69,110:89,116:90,112:[1,303],136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{6:$VR1,25:$VS1,85:[1,304]},o([6,25,26,85],$VG1,{31:72,48:177,50:178,10:179,29:180,27:181,51:182,47:307,28:$V1,30:$V2,32:$V3,33:$V4,53:$Vd,96:$V21}),{7:308,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,309],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:310,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,311],27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VZ,[2,31]),o($Vd1,[2,29]),o($Vb1,[2,93]),{7:312,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,80:[2,128],83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{80:[2,129],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},o($Vn1,[2,40],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{26:[1,313],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{6:$VN1,25:$VO1,93:[1,314]},o($Vt1,$VM1),{24:315,25:$V41},o($Vk1,[2,63]),{27:113,28:$V1,51:114,62:316,63:111,64:$V11,65:115,66:116,83:$Vh,96:$V21,97:$V31},o($VT1,$V01,{62:110,63:111,27:113,51:114,65:115,66:116,55:317,28:$V1,64:$V11,83:$Vh,96:$V21,97:$V31}),o($Vk1,[2,68],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VJ1,[2,24]),{26:[1,318],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},o($Vn1,[2,218],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{24:319,25:$V41,110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{24:320,25:$V41},o($VQ,[2,143]),{24:321,25:$V41},{24:322,25:$V41},o($VU1,[2,147]),{26:[1,323],128:[1,324],129:285,130:$Vp1},o($VQ,[2,184]),{24:325,25:$V41},o($VK1,[2,187]),{24:326,25:$V41,61:[1,327]},o($VV1,[2,139],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ,[2,106]),o($VL1,[2,109],{119:69,110:89,116:90,24:328,25:$V41,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{109:[1,329]},{98:[1,330],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},o($Vr1,[2,123]),{7:215,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,101:331,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:215,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:$V81,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,64:$V91,65:47,66:48,67:156,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,94:332,95:$Vk,96:$Vl,97:$Vm,101:154,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vt1,[2,132]),{6:$VN1,25:$VO1,26:[1,333]},o($Vv1,[2,152],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vv1,[2,154],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vv1,[2,165],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vw1,[2,174]),{7:334,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:335,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:336,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vr1,[2,97]),{10:179,27:181,28:$V1,29:180,30:$V2,31:72,32:$V3,33:$V4,47:337,48:177,50:178,51:182,53:$Vd,96:$V21},o($VT1,$Vc1,{31:72,47:176,48:177,50:178,10:179,29:180,27:181,51:182,84:338,28:$V1,30:$V2,32:$V3,33:$V4,53:$Vd,96:$V21}),o($Vz1,[2,100]),o($Vz1,[2,43],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{7:339,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($Vz1,[2,45],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{7:340,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{80:[2,127],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},o($VQ,[2,41]),o($Vh1,[2,118]),o($VQ,[2,55]),o($Vk1,[2,64]),o($VF1,$Vi1,{60:341,61:$Vj1}),o($VQ,[2,217]),o($VP1,[2,191]),o($VQ,[2,144]),o($VU1,[2,145]),o($VU1,[2,146]),o($VQ,[2,182]),{24:342,25:$V41},{26:[1,343]},o($VK1,[2,188],{6:[1,344]}),{7:345,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},o($VQ,[2,110]),o($VZ,[2,150]),o($VZ,[2,126]),o($Vt1,[2,133]),o($VF1,$Vi1,{60:346,61:$Vs1}),o($Vt1,[2,134]),o([1,6,25,26,34,56,61,64,80,85,93,98,100,109,111,112,113,117,133],[2,177],{119:69,110:89,116:90,118:[1,347],136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($VQ1,[2,179],{119:69,110:89,116:90,112:[1,348],136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vn1,[2,178],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vz1,[2,101]),o($VF1,$Vi1,{60:349,61:$Vy1}),{26:[1,350],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{26:[1,351],110:89,111:$Vq,113:$Vr,116:90,117:$Vt,119:69,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO},{6:$VH1,25:$VI1,26:[1,352]},{26:[1,353]},o($VQ,[2,185]),o($VK1,[2,189]),o($VV1,[2,140],{119:69,110:89,116:90,111:$Vq,113:$Vr,117:$Vt,133:$VF,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),{6:$VN1,25:$VO1,26:[1,354]},{7:355,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{7:356,8:122,9:18,10:19,11:$V0,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:$V1,29:49,30:$V2,31:72,32:$V3,33:$V4,35:51,36:$V5,37:$V6,39:22,40:$V7,41:$V8,42:$V9,43:$Va,44:$Vb,45:21,51:63,52:$Vc,53:$Vd,54:$Ve,57:28,58:$Vf,59:$Vg,65:47,66:48,68:36,70:23,71:24,72:25,83:$Vh,86:$Vi,90:$Vj,95:$Vk,96:$Vl,97:$Vm,103:$Vn,107:$Vo,108:$Vp,110:39,111:$Vq,113:$Vr,114:40,115:$Vs,116:41,117:$Vt,119:69,126:$Vu,131:37,132:$Vv,134:$Vw,135:$Vx,136:$Vy,137:$Vz,138:$VA,140:$VB,141:$VC},{6:$VR1,25:$VS1,26:[1,357]},o($Vz1,[2,44]),o($Vz1,[2,46]),o($Vk1,[2,65]),o($VQ,[2,183]),o($Vt1,[2,135]),o($Vn1,[2,180],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vn1,[2,181],{119:69,110:89,116:90,136:$VG,137:$VH,142:$VI,143:$VJ,144:$VK,145:$VL,146:$VM,147:$VN,148:$VO}),o($Vz1,[2,102])],\ndefaultActions: {60:[2,57],61:[2,58],96:[2,116],204:[2,96]},\nparseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n throw new Error(str);\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n _token_stack:\n function lex() {\n var token;\n token = lexer.lex() || EOF;\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain(args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","// Generated by CoffeeScript 1.10.0\n(function() {\n var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, i, len, loadFile, path, ref;\n\n CoffeeScript = require('./coffee-script');\n\n child_process = require('child_process');\n\n helpers = require('./helpers');\n\n path = require('path');\n\n loadFile = function(module, filename) {\n var answer;\n answer = CoffeeScript._compileFile(filename, false);\n return module._compile(answer, filename);\n };\n\n if (require.extensions) {\n ref = CoffeeScript.FILE_EXTENSIONS;\n for (i = 0, len = ref.length; i < len; i++) {\n ext = ref[i];\n require.extensions[ext] = loadFile;\n }\n Module = require('module');\n findExtension = function(filename) {\n var curExtension, extensions;\n extensions = path.basename(filename).split('.');\n if (extensions[0] === '') {\n extensions.shift();\n }\n while (extensions.shift()) {\n curExtension = '.' + extensions.join('.');\n if (Module._extensions[curExtension]) {\n return curExtension;\n }\n }\n return '.js';\n };\n Module.prototype.load = function(filename) {\n var extension;\n this.filename = filename;\n this.paths = Module._nodeModulePaths(path.dirname(filename));\n extension = findExtension(filename);\n Module._extensions[extension](this, filename);\n return this.loaded = true;\n };\n }\n\n if (child_process) {\n fork = child_process.fork;\n binary = require.resolve('../../bin/coffee');\n child_process.fork = function(path, args, options) {\n if (helpers.isCoffee(path)) {\n if (!Array.isArray(args)) {\n options = args || {};\n args = [];\n }\n args = [path].concat(args);\n path = binary;\n }\n return fork(path, args, options);\n };\n }\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var BALANCED_PAIRS, CALL_CLOSERS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, k, left, len, ref, rite,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },\n slice = [].slice;\n\n generate = function(tag, value, origin) {\n var tok;\n tok = [tag, value];\n tok.generated = true;\n if (origin) {\n tok.origin = origin;\n }\n return tok;\n };\n\n exports.Rewriter = (function() {\n function Rewriter() {}\n\n Rewriter.prototype.rewrite = function(tokens1) {\n this.tokens = tokens1;\n this.removeLeadingNewlines();\n this.closeOpenCalls();\n this.closeOpenIndexes();\n this.normalizeLines();\n this.tagPostfixConditionals();\n this.addImplicitBracesAndParens();\n this.addLocationDataToGeneratedTokens();\n return this.tokens;\n };\n\n Rewriter.prototype.scanTokens = function(block) {\n var i, token, tokens;\n tokens = this.tokens;\n i = 0;\n while (token = tokens[i]) {\n i += block.call(this, token, i, tokens);\n }\n return true;\n };\n\n Rewriter.prototype.detectEnd = function(i, condition, action) {\n var levels, ref, ref1, token, tokens;\n tokens = this.tokens;\n levels = 0;\n while (token = tokens[i]) {\n if (levels === 0 && condition.call(this, token, i)) {\n return action.call(this, token, i);\n }\n if (!token || levels < 0) {\n return action.call(this, token, i - 1);\n }\n if (ref = token[0], indexOf.call(EXPRESSION_START, ref) >= 0) {\n levels += 1;\n } else if (ref1 = token[0], indexOf.call(EXPRESSION_END, ref1) >= 0) {\n levels -= 1;\n }\n i += 1;\n }\n return i - 1;\n };\n\n Rewriter.prototype.removeLeadingNewlines = function() {\n var i, k, len, ref, tag;\n ref = this.tokens;\n for (i = k = 0, len = ref.length; k < len; i = ++k) {\n tag = ref[i][0];\n if (tag !== 'TERMINATOR') {\n break;\n }\n }\n if (i) {\n return this.tokens.splice(0, i);\n }\n };\n\n Rewriter.prototype.closeOpenCalls = function() {\n var action, condition;\n condition = function(token, i) {\n var ref;\n return ((ref = token[0]) === ')' || ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')';\n };\n action = function(token, i) {\n return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END';\n };\n return this.scanTokens(function(token, i) {\n if (token[0] === 'CALL_START') {\n this.detectEnd(i + 1, condition, action);\n }\n return 1;\n });\n };\n\n Rewriter.prototype.closeOpenIndexes = function() {\n var action, condition;\n condition = function(token, i) {\n var ref;\n return (ref = token[0]) === ']' || ref === 'INDEX_END';\n };\n action = function(token, i) {\n return token[0] = 'INDEX_END';\n };\n return this.scanTokens(function(token, i) {\n if (token[0] === 'INDEX_START') {\n this.detectEnd(i + 1, condition, action);\n }\n return 1;\n });\n };\n\n Rewriter.prototype.indexOfTag = function() {\n var fuzz, i, j, k, pattern, ref, ref1;\n i = arguments[0], pattern = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n fuzz = 0;\n for (j = k = 0, ref = pattern.length; 0 <= ref ? k < ref : k > ref; j = 0 <= ref ? ++k : --k) {\n while (this.tag(i + j + fuzz) === 'HERECOMMENT') {\n fuzz += 2;\n }\n if (pattern[j] == null) {\n continue;\n }\n if (typeof pattern[j] === 'string') {\n pattern[j] = [pattern[j]];\n }\n if (ref1 = this.tag(i + j + fuzz), indexOf.call(pattern[j], ref1) < 0) {\n return -1;\n }\n }\n return i + j + fuzz - 1;\n };\n\n Rewriter.prototype.looksObjectish = function(j) {\n var end, index;\n if (this.indexOfTag(j, '@', null, ':') > -1 || this.indexOfTag(j, null, ':') > -1) {\n return true;\n }\n index = this.indexOfTag(j, EXPRESSION_START);\n if (index > -1) {\n end = null;\n this.detectEnd(index + 1, (function(token) {\n var ref;\n return ref = token[0], indexOf.call(EXPRESSION_END, ref) >= 0;\n }), (function(token, i) {\n return end = i;\n }));\n if (this.tag(end + 1) === ':') {\n return true;\n }\n }\n return false;\n };\n\n Rewriter.prototype.findTagsBackwards = function(i, tags) {\n var backStack, ref, ref1, ref2, ref3, ref4, ref5;\n backStack = [];\n while (i >= 0 && (backStack.length || (ref2 = this.tag(i), indexOf.call(tags, ref2) < 0) && ((ref3 = this.tag(i), indexOf.call(EXPRESSION_START, ref3) < 0) || this.tokens[i].generated) && (ref4 = this.tag(i), indexOf.call(LINEBREAKS, ref4) < 0))) {\n if (ref = this.tag(i), indexOf.call(EXPRESSION_END, ref) >= 0) {\n backStack.push(this.tag(i));\n }\n if ((ref1 = this.tag(i), indexOf.call(EXPRESSION_START, ref1) >= 0) && backStack.length) {\n backStack.pop();\n }\n i -= 1;\n }\n return ref5 = this.tag(i), indexOf.call(tags, ref5) >= 0;\n };\n\n Rewriter.prototype.addImplicitBracesAndParens = function() {\n var stack, start;\n stack = [];\n start = null;\n return this.scanTokens(function(token, i, tokens) {\n var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, newLine, nextTag, offset, prevTag, prevToken, ref, ref1, ref2, ref3, ref4, ref5, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag;\n tag = token[0];\n prevTag = (prevToken = i > 0 ? tokens[i - 1] : [])[0];\n nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0];\n stackTop = function() {\n return stack[stack.length - 1];\n };\n startIdx = i;\n forward = function(n) {\n return i - startIdx + n;\n };\n inImplicit = function() {\n var ref, ref1;\n return (ref = stackTop()) != null ? (ref1 = ref[2]) != null ? ref1.ours : void 0 : void 0;\n };\n inImplicitCall = function() {\n var ref;\n return inImplicit() && ((ref = stackTop()) != null ? ref[0] : void 0) === '(';\n };\n inImplicitObject = function() {\n var ref;\n return inImplicit() && ((ref = stackTop()) != null ? ref[0] : void 0) === '{';\n };\n inImplicitControl = function() {\n var ref;\n return inImplicit && ((ref = stackTop()) != null ? ref[0] : void 0) === 'CONTROL';\n };\n startImplicitCall = function(j) {\n var idx;\n idx = j != null ? j : i;\n stack.push([\n '(', idx, {\n ours: true\n }\n ]);\n tokens.splice(idx, 0, generate('CALL_START', '('));\n if (j == null) {\n return i += 1;\n }\n };\n endImplicitCall = function() {\n stack.pop();\n tokens.splice(i, 0, generate('CALL_END', ')', ['', 'end of input', token[2]]));\n return i += 1;\n };\n startImplicitObject = function(j, startsLine) {\n var idx, val;\n if (startsLine == null) {\n startsLine = true;\n }\n idx = j != null ? j : i;\n stack.push([\n '{', idx, {\n sameLine: true,\n startsLine: startsLine,\n ours: true\n }\n ]);\n val = new String('{');\n val.generated = true;\n tokens.splice(idx, 0, generate('{', val, token));\n if (j == null) {\n return i += 1;\n }\n };\n endImplicitObject = function(j) {\n j = j != null ? j : i;\n stack.pop();\n tokens.splice(j, 0, generate('}', '}', token));\n return i += 1;\n };\n if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) {\n stack.push([\n 'CONTROL', i, {\n ours: true\n }\n ]);\n return forward(1);\n }\n if (tag === 'INDENT' && inImplicit()) {\n if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') {\n while (inImplicitCall()) {\n endImplicitCall();\n }\n }\n if (inImplicitControl()) {\n stack.pop();\n }\n stack.push([tag, i]);\n return forward(1);\n }\n if (indexOf.call(EXPRESSION_START, tag) >= 0) {\n stack.push([tag, i]);\n return forward(1);\n }\n if (indexOf.call(EXPRESSION_END, tag) >= 0) {\n while (inImplicit()) {\n if (inImplicitCall()) {\n endImplicitCall();\n } else if (inImplicitObject()) {\n endImplicitObject();\n } else {\n stack.pop();\n }\n }\n start = stack.pop();\n }\n if ((indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((ref = tokens[i + 1]) != null ? ref.spaced : void 0) && !((ref1 = tokens[i + 1]) != null ? ref1.newLine : void 0))) {\n if (tag === '?') {\n tag = token[0] = 'FUNC_EXIST';\n }\n startImplicitCall(i + 1);\n return forward(2);\n }\n if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, 'INDENT') > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) {\n startImplicitCall(i + 1);\n stack.push(['INDENT', i + 2]);\n return forward(3);\n }\n if (tag === ':') {\n s = (function() {\n var ref2;\n switch (false) {\n case ref2 = this.tag(i - 1), indexOf.call(EXPRESSION_END, ref2) < 0:\n return start[1];\n case this.tag(i - 2) !== '@':\n return i - 2;\n default:\n return i - 1;\n }\n }).call(this);\n while (this.tag(s - 2) === 'HERECOMMENT') {\n s -= 2;\n }\n this.insideForDeclaration = nextTag === 'FOR';\n startsLine = s === 0 || (ref2 = this.tag(s - 1), indexOf.call(LINEBREAKS, ref2) >= 0) || tokens[s - 1].newLine;\n if (stackTop()) {\n ref3 = stackTop(), stackTag = ref3[0], stackIdx = ref3[1];\n if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) {\n return forward(1);\n }\n }\n startImplicitObject(s, !!startsLine);\n return forward(2);\n }\n if (inImplicitObject() && indexOf.call(LINEBREAKS, tag) >= 0) {\n stackTop()[2].sameLine = false;\n }\n newLine = prevTag === 'OUTDENT' || prevToken.newLine;\n if (indexOf.call(IMPLICIT_END, tag) >= 0 || indexOf.call(CALL_CLOSERS, tag) >= 0 && newLine) {\n while (inImplicit()) {\n ref4 = stackTop(), stackTag = ref4[0], stackIdx = ref4[1], (ref5 = ref4[2], sameLine = ref5.sameLine, startsLine = ref5.startsLine);\n if (inImplicitCall() && prevTag !== ',') {\n endImplicitCall();\n } else if (inImplicitObject() && !this.insideForDeclaration && sameLine && tag !== 'TERMINATOR' && prevTag !== ':') {\n endImplicitObject();\n } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) {\n if (nextTag === 'HERECOMMENT') {\n return forward(1);\n }\n endImplicitObject();\n } else {\n break;\n }\n }\n }\n if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && !this.insideForDeclaration && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) {\n offset = nextTag === 'OUTDENT' ? 1 : 0;\n while (inImplicitObject()) {\n endImplicitObject(i + offset);\n }\n }\n return forward(1);\n });\n };\n\n Rewriter.prototype.addLocationDataToGeneratedTokens = function() {\n return this.scanTokens(function(token, i, tokens) {\n var column, line, nextLocation, prevLocation, ref, ref1;\n if (token[2]) {\n return 1;\n }\n if (!(token.generated || token.explicit)) {\n return 1;\n }\n if (token[0] === '{' && (nextLocation = (ref = tokens[i + 1]) != null ? ref[2] : void 0)) {\n line = nextLocation.first_line, column = nextLocation.first_column;\n } else if (prevLocation = (ref1 = tokens[i - 1]) != null ? ref1[2] : void 0) {\n line = prevLocation.last_line, column = prevLocation.last_column;\n } else {\n line = column = 0;\n }\n token[2] = {\n first_line: line,\n first_column: column,\n last_line: line,\n last_column: column\n };\n return 1;\n });\n };\n\n Rewriter.prototype.normalizeLines = function() {\n var action, condition, indent, outdent, starter;\n starter = indent = outdent = null;\n condition = function(token, i) {\n var ref, ref1, ref2, ref3;\n return token[1] !== ';' && (ref = token[0], indexOf.call(SINGLE_CLOSERS, ref) >= 0) && !(token[0] === 'TERMINATOR' && (ref1 = this.tag(i + 1), indexOf.call(EXPRESSION_CLOSE, ref1) >= 0)) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((ref2 = token[0]) === 'CATCH' || ref2 === 'FINALLY') && (starter === '->' || starter === '=>')) || (ref3 = token[0], indexOf.call(CALL_CLOSERS, ref3) >= 0) && this.tokens[i - 1].newLine;\n };\n action = function(token, i) {\n return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent);\n };\n return this.scanTokens(function(token, i, tokens) {\n var j, k, ref, ref1, ref2, tag;\n tag = token[0];\n if (tag === 'TERMINATOR') {\n if (this.tag(i + 1) === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') {\n tokens.splice.apply(tokens, [i, 1].concat(slice.call(this.indentation())));\n return 1;\n }\n if (ref = this.tag(i + 1), indexOf.call(EXPRESSION_CLOSE, ref) >= 0) {\n tokens.splice(i, 1);\n return 0;\n }\n }\n if (tag === 'CATCH') {\n for (j = k = 1; k <= 2; j = ++k) {\n if (!((ref1 = this.tag(i + j)) === 'OUTDENT' || ref1 === 'TERMINATOR' || ref1 === 'FINALLY')) {\n continue;\n }\n tokens.splice.apply(tokens, [i + j, 0].concat(slice.call(this.indentation())));\n return 2 + j;\n }\n }\n if (indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) {\n starter = tag;\n ref2 = this.indentation(tokens[i]), indent = ref2[0], outdent = ref2[1];\n if (starter === 'THEN') {\n indent.fromThen = true;\n }\n tokens.splice(i + 1, 0, indent);\n this.detectEnd(i + 2, condition, action);\n if (tag === 'THEN') {\n tokens.splice(i, 1);\n }\n return 1;\n }\n return 1;\n });\n };\n\n Rewriter.prototype.tagPostfixConditionals = function() {\n var action, condition, original;\n original = null;\n condition = function(token, i) {\n var prevTag, tag;\n tag = token[0];\n prevTag = this.tokens[i - 1][0];\n return tag === 'TERMINATOR' || (tag === 'INDENT' && indexOf.call(SINGLE_LINERS, prevTag) < 0);\n };\n action = function(token, i) {\n if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) {\n return original[0] = 'POST_' + original[0];\n }\n };\n return this.scanTokens(function(token, i) {\n if (token[0] !== 'IF') {\n return 1;\n }\n original = token;\n this.detectEnd(i + 1, condition, action);\n return 1;\n });\n };\n\n Rewriter.prototype.indentation = function(origin) {\n var indent, outdent;\n indent = ['INDENT', 2];\n outdent = ['OUTDENT', 2];\n if (origin) {\n indent.generated = outdent.generated = true;\n indent.origin = outdent.origin = origin;\n } else {\n indent.explicit = outdent.explicit = true;\n }\n return [indent, outdent];\n };\n\n Rewriter.prototype.generate = generate;\n\n Rewriter.prototype.tag = function(i) {\n var ref;\n return (ref = this.tokens[i]) != null ? ref[0] : void 0;\n };\n\n return Rewriter;\n\n })();\n\n BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END'], ['STRING_START', 'STRING_END'], ['REGEX_START', 'REGEX_END']];\n\n exports.INVERSES = INVERSES = {};\n\n EXPRESSION_START = [];\n\n EXPRESSION_END = [];\n\n for (k = 0, len = BALANCED_PAIRS.length; k < len; k++) {\n ref = BALANCED_PAIRS[k], left = ref[0], rite = ref[1];\n EXPRESSION_START.push(INVERSES[rite] = left);\n EXPRESSION_END.push(INVERSES[left] = rite);\n }\n\n EXPRESSION_CLOSE = ['CATCH', 'THEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);\n\n IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];\n\n IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'STRING_START', 'JS', 'REGEX', 'REGEX_START', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'YIELD', 'UNARY_MATH', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++'];\n\n IMPLICIT_UNSPACED_CALL = ['+', '-'];\n\n IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR'];\n\n SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'];\n\n SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'];\n\n LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'];\n\n CALL_CLOSERS = ['.', '?.', '::', '?::'];\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var Scope,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n exports.Scope = Scope = (function() {\n function Scope(parent, expressions, method, referencedVars) {\n var ref, ref1;\n this.parent = parent;\n this.expressions = expressions;\n this.method = method;\n this.referencedVars = referencedVars;\n this.variables = [\n {\n name: 'arguments',\n type: 'arguments'\n }\n ];\n this.positions = {};\n if (!this.parent) {\n this.utilities = {};\n }\n this.root = (ref = (ref1 = this.parent) != null ? ref1.root : void 0) != null ? ref : this;\n }\n\n Scope.prototype.add = function(name, type, immediate) {\n if (this.shared && !immediate) {\n return this.parent.add(name, type, immediate);\n }\n if (Object.prototype.hasOwnProperty.call(this.positions, name)) {\n return this.variables[this.positions[name]].type = type;\n } else {\n return this.positions[name] = this.variables.push({\n name: name,\n type: type\n }) - 1;\n }\n };\n\n Scope.prototype.namedMethod = function() {\n var ref;\n if (((ref = this.method) != null ? ref.name : void 0) || !this.parent) {\n return this.method;\n }\n return this.parent.namedMethod();\n };\n\n Scope.prototype.find = function(name) {\n if (this.check(name)) {\n return true;\n }\n this.add(name, 'var');\n return false;\n };\n\n Scope.prototype.parameter = function(name) {\n if (this.shared && this.parent.check(name, true)) {\n return;\n }\n return this.add(name, 'param');\n };\n\n Scope.prototype.check = function(name) {\n var ref;\n return !!(this.type(name) || ((ref = this.parent) != null ? ref.check(name) : void 0));\n };\n\n Scope.prototype.temporary = function(name, index, single) {\n if (single == null) {\n single = false;\n }\n if (single) {\n return (index + parseInt(name, 36)).toString(36).replace(/\\d/g, 'a');\n } else {\n return name + (index || '');\n }\n };\n\n Scope.prototype.type = function(name) {\n var i, len, ref, v;\n ref = this.variables;\n for (i = 0, len = ref.length; i < len; i++) {\n v = ref[i];\n if (v.name === name) {\n return v.type;\n }\n }\n return null;\n };\n\n Scope.prototype.freeVariable = function(name, options) {\n var index, ref, temp;\n if (options == null) {\n options = {};\n }\n index = 0;\n while (true) {\n temp = this.temporary(name, index, options.single);\n if (!(this.check(temp) || indexOf.call(this.root.referencedVars, temp) >= 0)) {\n break;\n }\n index++;\n }\n if ((ref = options.reserve) != null ? ref : true) {\n this.add(temp, 'var', true);\n }\n return temp;\n };\n\n Scope.prototype.assign = function(name, value) {\n this.add(name, {\n value: value,\n assigned: true\n }, true);\n return this.hasAssignments = true;\n };\n\n Scope.prototype.hasDeclarations = function() {\n return !!this.declaredVariables().length;\n };\n\n Scope.prototype.declaredVariables = function() {\n var v;\n return ((function() {\n var i, len, ref, results;\n ref = this.variables;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n v = ref[i];\n if (v.type === 'var') {\n results.push(v.name);\n }\n }\n return results;\n }).call(this)).sort();\n };\n\n Scope.prototype.assignedVariables = function() {\n var i, len, ref, results, v;\n ref = this.variables;\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n v = ref[i];\n if (v.type.assigned) {\n results.push(v.name + \" = \" + v.type.value);\n }\n }\n return results;\n };\n\n return Scope;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var LineMap, SourceMap;\n\n LineMap = (function() {\n function LineMap(line1) {\n this.line = line1;\n this.columns = [];\n }\n\n LineMap.prototype.add = function(column, arg, options) {\n var sourceColumn, sourceLine;\n sourceLine = arg[0], sourceColumn = arg[1];\n if (options == null) {\n options = {};\n }\n if (this.columns[column] && options.noReplace) {\n return;\n }\n return this.columns[column] = {\n line: this.line,\n column: column,\n sourceLine: sourceLine,\n sourceColumn: sourceColumn\n };\n };\n\n LineMap.prototype.sourceLocation = function(column) {\n var mapping;\n while (!((mapping = this.columns[column]) || (column <= 0))) {\n column--;\n }\n return mapping && [mapping.sourceLine, mapping.sourceColumn];\n };\n\n return LineMap;\n\n })();\n\n SourceMap = (function() {\n var BASE64_CHARS, VLQ_CONTINUATION_BIT, VLQ_SHIFT, VLQ_VALUE_MASK;\n\n function SourceMap() {\n this.lines = [];\n }\n\n SourceMap.prototype.add = function(sourceLocation, generatedLocation, options) {\n var base, column, line, lineMap;\n if (options == null) {\n options = {};\n }\n line = generatedLocation[0], column = generatedLocation[1];\n lineMap = ((base = this.lines)[line] || (base[line] = new LineMap(line)));\n return lineMap.add(column, sourceLocation, options);\n };\n\n SourceMap.prototype.sourceLocation = function(arg) {\n var column, line, lineMap;\n line = arg[0], column = arg[1];\n while (!((lineMap = this.lines[line]) || (line <= 0))) {\n line--;\n }\n return lineMap && lineMap.sourceLocation(column);\n };\n\n SourceMap.prototype.generate = function(options, code) {\n var buffer, i, j, lastColumn, lastSourceColumn, lastSourceLine, len, len1, lineMap, lineNumber, mapping, needComma, ref, ref1, v3, writingline;\n if (options == null) {\n options = {};\n }\n if (code == null) {\n code = null;\n }\n writingline = 0;\n lastColumn = 0;\n lastSourceLine = 0;\n lastSourceColumn = 0;\n needComma = false;\n buffer = \"\";\n ref = this.lines;\n for (lineNumber = i = 0, len = ref.length; i < len; lineNumber = ++i) {\n lineMap = ref[lineNumber];\n if (lineMap) {\n ref1 = lineMap.columns;\n for (j = 0, len1 = ref1.length; j < len1; j++) {\n mapping = ref1[j];\n if (!(mapping)) {\n continue;\n }\n while (writingline < mapping.line) {\n lastColumn = 0;\n needComma = false;\n buffer += \";\";\n writingline++;\n }\n if (needComma) {\n buffer += \",\";\n needComma = false;\n }\n buffer += this.encodeVlq(mapping.column - lastColumn);\n lastColumn = mapping.column;\n buffer += this.encodeVlq(0);\n buffer += this.encodeVlq(mapping.sourceLine - lastSourceLine);\n lastSourceLine = mapping.sourceLine;\n buffer += this.encodeVlq(mapping.sourceColumn - lastSourceColumn);\n lastSourceColumn = mapping.sourceColumn;\n needComma = true;\n }\n }\n }\n v3 = {\n version: 3,\n file: options.generatedFile || '',\n sourceRoot: options.sourceRoot || '',\n sources: options.sourceFiles || [''],\n names: [],\n mappings: buffer\n };\n if (options.inline) {\n v3.sourcesContent = [code];\n }\n return JSON.stringify(v3, null, 2);\n };\n\n VLQ_SHIFT = 5;\n\n VLQ_CONTINUATION_BIT = 1 << VLQ_SHIFT;\n\n VLQ_VALUE_MASK = VLQ_CONTINUATION_BIT - 1;\n\n SourceMap.prototype.encodeVlq = function(value) {\n var answer, nextChunk, signBit, valueToEncode;\n answer = '';\n signBit = value < 0 ? 1 : 0;\n valueToEncode = (Math.abs(value) << 1) + signBit;\n while (valueToEncode || !answer) {\n nextChunk = valueToEncode & VLQ_VALUE_MASK;\n valueToEncode = valueToEncode >> VLQ_SHIFT;\n if (valueToEncode) {\n nextChunk |= VLQ_CONTINUATION_BIT;\n }\n answer += this.encodeBase64(nextChunk);\n }\n return answer;\n };\n\n BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n SourceMap.prototype.encodeBase64 = function(value) {\n return BASE64_CHARS[value] || (function() {\n throw new Error(\"Cannot Base64 encode value: \" + value);\n })();\n };\n\n return SourceMap;\n\n })();\n\n module.exports = SourceMap;\n\n}).call(this);\n","(function() {\n var CoffeeScript, indent, precompile, preprocess;\n\n CoffeeScript = require(\"coffee-script\");\n\n preprocess = require(\"./preprocessor\").preprocess;\n\n indent = require(\"./util\").indent;\n\n exports.precompile = precompile = function(source) {\n var script;\n script = CoffeeScript.compile(preprocess(source), {\n noWrap: true\n });\n return \"function(__obj) {\\n if (!__obj) __obj = {};\\n var __out = [], __capture = function(callback) {\\n var out = __out, result;\\n __out = [];\\n callback.call(this);\\n result = __out.join('');\\n __out = out;\\n return __safe(result);\\n }, __sanitize = function(value) {\\n if (value && value.ecoSafe) {\\n return value;\\n } else if (typeof value !== 'undefined' && value != null) {\\n return __escape(value);\\n } else {\\n return '';\\n }\\n }, __safe, __objSafe = __obj.safe, __escape = __obj.escape;\\n __safe = __obj.safe = function(value) {\\n if (value && value.ecoSafe) {\\n return value;\\n } else {\\n if (!(typeof value !== 'undefined' && value != null)) value = '';\\n var result = new String(value);\\n result.ecoSafe = true;\\n return result;\\n }\\n };\\n if (!__escape) {\\n __escape = __obj.escape = function(value) {\\n return ('' + value)\\n .replace(/&/g, '&amp;')\\n .replace(/</g, '&lt;')\\n .replace(/>/g, '&gt;')\\n .replace(/\\x22/g, '&quot;');\\n };\\n }\\n (function() {\\n\" + (indent(script, 4)) + \"\\n }).call(__obj);\\n __obj.safe = __objSafe, __obj.escape = __escape;\\n return __out.join('');\\n}\";\n };\n\n exports.compile = function(source) {\n return new Function(\"return \" + (precompile(source)))();\n };\n\n}).call(this);\n","(function() {\n var compile, eco, precompile, preprocess, _ref;\n\n _ref = require(\"./compiler\"), compile = _ref.compile, precompile = _ref.precompile;\n\n preprocess = require(\"./preprocessor\").preprocess;\n\n module.exports = eco = function(source) {\n var _base, _ref2;\n if (eco.cache) {\n return (_ref2 = (_base = eco.cache)[source]) != null ? _ref2 : _base[source] = compile(source);\n } else {\n return compile(source);\n }\n };\n\n eco.cache = {};\n\n eco.preprocess = preprocess;\n\n eco.precompile = precompile;\n\n eco.compile = compile;\n\n eco.render = function(source, data) {\n return (eco(source))(data);\n };\n\n if (require.extensions) {\n require.extensions[\".eco\"] = function(module, filename) {\n var source;\n source = require(\"fs\").readFileSync(filename, \"utf-8\");\n return module._compile(\"module.exports = \" + (precompile(source)), filename);\n };\n }\n\n}).call(this);\n","(function() {\n var Preprocessor, Scanner, util;\n\n Scanner = require(\"./scanner\");\n\n util = require(\"./util\");\n\n module.exports = Preprocessor = (function() {\n\n Preprocessor.preprocess = function(source) {\n var preprocessor;\n preprocessor = new Preprocessor(source);\n return preprocessor.preprocess();\n };\n\n function Preprocessor(source) {\n this.scanner = new Scanner(source);\n this.output = \"\";\n this.level = 0;\n this.options = {};\n this.captures = [];\n }\n\n Preprocessor.prototype.preprocess = function() {\n var _this = this;\n while (!this.scanner.done) {\n this.scanner.scan(function(token) {\n return _this[token[0]].apply(_this, token.slice(1));\n });\n }\n return this.output;\n };\n\n Preprocessor.prototype.record = function(line) {\n this.output += util.repeat(\" \", this.level);\n return this.output += line + \"\\n\";\n };\n\n Preprocessor.prototype.printString = function(string) {\n if (string.length) {\n return this.record(\"__out.push \" + (util.inspectString(string)));\n }\n };\n\n Preprocessor.prototype.beginCode = function(options) {\n return this.options = options;\n };\n\n Preprocessor.prototype.recordCode = function(code) {\n if (code !== \"end\") {\n if (this.options.print) {\n if (this.options.safe) {\n return this.record(\"__out.push \" + code);\n } else {\n return this.record(\"__out.push __sanitize \" + code);\n }\n } else {\n return this.record(code);\n }\n }\n };\n\n Preprocessor.prototype.indent = function(capture) {\n this.level++;\n if (capture) {\n this.record(\"__capture \" + capture);\n this.captures.unshift(this.level);\n return this.indent();\n }\n };\n\n Preprocessor.prototype.dedent = function() {\n this.level--;\n if (this.level < 0) this.fail(\"unexpected dedent\");\n if (this.captures[0] === this.level) {\n this.captures.shift();\n return this.dedent();\n }\n };\n\n Preprocessor.prototype.fail = function(message) {\n throw \"Parse error on line \" + this.scanner.lineNo + \": \" + message;\n };\n\n return Preprocessor;\n\n })();\n\n}).call(this);\n","(function() {\n var Scanner, StringScanner, trim;\n\n StringScanner = require(\"strscan\").StringScanner;\n\n trim = require(\"./util\").trim;\n\n module.exports = Scanner = (function() {\n\n Scanner.modePatterns = {\n data: /(.*?)(<%%|<%\\s*(\\#)|<%(([=-])?)|\\n|$)/,\n code: /(.*?)((((:|(->|=>))\\s*))?%>|\\n|$)/,\n comment: /(.*?)(%>|\\n|$)/\n };\n\n Scanner.dedentablePattern = /^(end|when|else|catch|finally)(?:\\W|$)/;\n\n Scanner.scan = function(source) {\n var scanner, tokens;\n tokens = [];\n scanner = new Scanner(source);\n while (!scanner.done) {\n scanner.scan(function(token) {\n return tokens.push(token);\n });\n }\n return tokens;\n };\n\n function Scanner(source) {\n this.source = source.replace(/\\r\\n?/g, \"\\n\");\n this.scanner = new StringScanner(this.source);\n this.mode = \"data\";\n this.buffer = \"\";\n this.lineNo = 1;\n this.done = false;\n }\n\n Scanner.prototype.scan = function(callback) {\n if (this.done) {\n return callback();\n } else if (this.scanner.hasTerminated()) {\n this.done = true;\n switch (this.mode) {\n case \"data\":\n return callback([\"printString\", this.flush()]);\n case \"code\":\n return callback([\"fail\", \"unexpected end of template\"]);\n }\n } else {\n this.advance();\n switch (this.mode) {\n case \"data\":\n return this.scanData(callback);\n case \"code\":\n return this.scanCode(callback);\n case \"comment\":\n return this.scanComment(callback);\n }\n }\n };\n\n Scanner.prototype.advance = function() {\n this.scanner.scanUntil(Scanner.modePatterns[this.mode]);\n this.buffer += this.scanner.getCapture(0);\n this.tail = this.scanner.getCapture(1);\n this.comment = this.scanner.getCapture(2);\n this.directive = this.scanner.getCapture(4);\n return this.arrow = this.scanner.getCapture(5);\n };\n\n Scanner.prototype.scanData = function(callback) {\n if (this.tail === \"<%%\") {\n this.buffer += \"<%\";\n return this.scan(callback);\n } else if (this.tail === \"\\n\") {\n this.buffer += this.tail;\n this.lineNo++;\n return this.scan(callback);\n } else if (this.tail) {\n callback([\"printString\", this.flush()]);\n if (this.comment) {\n return this.mode = \"comment\";\n } else {\n this.mode = \"code\";\n return callback([\n \"beginCode\", {\n print: this.directive != null,\n safe: this.directive === \"-\"\n }\n ]);\n }\n }\n };\n\n Scanner.prototype.scanCode = function(callback) {\n var code;\n if (this.tail === \"\\n\") {\n return callback([\"fail\", \"unexpected newline in code block\"]);\n } else if (this.tail) {\n this.mode = \"data\";\n code = trim(this.flush());\n if (this.arrow) code += \" \" + this.arrow;\n if (this.isDedentable(code)) callback([\"dedent\"]);\n callback([\"recordCode\", code]);\n if (this.directive) return callback([\"indent\", this.arrow]);\n }\n };\n\n Scanner.prototype.scanComment = function(callback) {\n if (this.tail === \"\\n\") {\n return callback([\"fail\", \"unexpected newline in code block\"]);\n } else if (this.tail) {\n this.mode = \"data\";\n return this.buffer = \"\";\n }\n };\n\n Scanner.prototype.flush = function() {\n var buffer;\n buffer = this.buffer;\n this.buffer = \"\";\n return buffer;\n };\n\n Scanner.prototype.isDedentable = function(code) {\n return code.match(Scanner.dedentablePattern);\n };\n\n return Scanner;\n\n })();\n\n}).call(this);\n","(function() {\n var repeat, specialCharacters;\n\n exports.repeat = repeat = function(string, count) {\n return Array(count + 1).join(string);\n };\n\n exports.indent = function(string, width) {\n var line, lines, space;\n space = repeat(\" \", width);\n lines = (function() {\n var _i, _len, _ref, _results;\n _ref = string.split(\"\\n\");\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n line = _ref[_i];\n _results.push(space + line);\n }\n return _results;\n })();\n return lines.join(\"\\n\");\n };\n\n exports.trim = function(string) {\n return string.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\");\n };\n\n specialCharacters = {\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t'\n };\n\n exports.inspectString = function(string) {\n var contents;\n contents = string.replace(/[\\x00-\\x1f\\\\]/g, function(character) {\n var code;\n if (character in specialCharacters) {\n return specialCharacters[character];\n } else {\n code = character.charCodeAt(0).toString(16);\n if (code.length === 1) code = \"0\" + code;\n return \"\\\\u00\" + code;\n }\n });\n return \"'\" + contents.replace(/'/g, '\\\\\\'') + \"'\";\n };\n\n}).call(this);\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar splitPath = function(filename) {\n return splitPathRe.exec(filename).slice(1);\n};\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function(path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n};\n\n\nexports.basename = function(path, ext) {\n var f = splitPath(path)[2];\n // TODO: make this comparison case-insensitive on windows?\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\n\nexports.extname = function(path) {\n return splitPath(path)[3];\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function() {\n var StringScanner;\n ((typeof exports !== \"undefined\" && exports !== null) ? exports : this).StringScanner = (function() {\n StringScanner = function(source) {\n this.source = source.toString();\n this.reset();\n return this;\n };\n StringScanner.prototype.scan = function(regexp) {\n var matches;\n return (matches = regexp.exec(this.getRemainder())) && matches.index === 0 ? this.setState(matches, {\n head: this.head + matches[0].length,\n last: this.head\n }) : this.setState([]);\n };\n StringScanner.prototype.scanUntil = function(regexp) {\n var matches;\n if (matches = regexp.exec(this.getRemainder())) {\n this.setState(matches, {\n head: this.head + matches.index + matches[0].length,\n last: this.head\n });\n return this.source.slice(this.last, this.head);\n } else {\n return this.setState([]);\n }\n };\n StringScanner.prototype.scanChar = function() {\n return this.scan(/[\\s\\S]/);\n };\n StringScanner.prototype.skip = function(regexp) {\n if (this.scan(regexp)) {\n return this.match.length;\n }\n };\n StringScanner.prototype.skipUntil = function(regexp) {\n if (this.scanUntil(regexp)) {\n return this.head - this.last;\n }\n };\n StringScanner.prototype.check = function(regexp) {\n var matches;\n return (matches = regexp.exec(this.getRemainder())) && matches.index === 0 ? this.setState(matches) : this.setState([]);\n };\n StringScanner.prototype.checkUntil = function(regexp) {\n var matches;\n if (matches = regexp.exec(this.getRemainder())) {\n this.setState(matches);\n return this.source.slice(this.head, this.head + matches.index + matches[0].length);\n } else {\n return this.setState([]);\n }\n };\n StringScanner.prototype.peek = function(length) {\n return this.source.substr(this.head, (typeof length !== \"undefined\" && length !== null) ? length : 1);\n };\n StringScanner.prototype.getSource = function() {\n return this.source;\n };\n StringScanner.prototype.getRemainder = function() {\n return this.source.slice(this.head);\n };\n StringScanner.prototype.getPosition = function() {\n return this.head;\n };\n StringScanner.prototype.hasTerminated = function() {\n return this.head === this.source.length;\n };\n StringScanner.prototype.getPreMatch = function() {\n if (this.match) {\n return this.source.slice(0, this.head - this.match.length);\n }\n };\n StringScanner.prototype.getMatch = function() {\n return this.match;\n };\n StringScanner.prototype.getPostMatch = function() {\n if (this.match) {\n return this.source.slice(this.head);\n }\n };\n StringScanner.prototype.getCapture = function(index) {\n return this.captures[index];\n };\n StringScanner.prototype.reset = function() {\n return this.setState([], {\n head: 0,\n last: 0\n });\n };\n StringScanner.prototype.terminate = function() {\n return this.setState([], {\n head: this.source.length,\n last: this.head\n });\n };\n StringScanner.prototype.concat = function(string) {\n return this.source += string;\n };\n StringScanner.prototype.unscan = function() {\n if (this.match) {\n return this.setState([], {\n head: this.last,\n last: 0\n });\n } else {\n throw \"nothing to unscan\";\n }\n };\n StringScanner.prototype.setState = function(matches, values) {\n var _a, _b;\n this.head = (typeof (_a = ((typeof values === \"undefined\" || values === null) ? undefined : values.head)) !== \"undefined\" && _a !== null) ? _a : this.head;\n this.last = (typeof (_b = ((typeof values === \"undefined\" || values === null) ? undefined : values.last)) !== \"undefined\" && _b !== null) ? _b : this.last;\n this.captures = matches.slice(1);\n return (this.match = matches[0]);\n };\n return StringScanner;\n })();\n})();\n","var indexOf = require('indexof');\n\nvar Object_keys = function (obj) {\n if (Object.keys) return Object.keys(obj)\n else {\n var res = [];\n for (var key in obj) res.push(key)\n return res;\n }\n};\n\nvar forEach = function (xs, fn) {\n if (xs.forEach) return xs.forEach(fn)\n else for (var i = 0; i < xs.length; i++) {\n fn(xs[i], i, xs);\n }\n};\n\nvar defineProp = (function() {\n try {\n Object.defineProperty({}, '_', {});\n return function(obj, name, value) {\n Object.defineProperty(obj, name, {\n writable: true,\n enumerable: false,\n configurable: true,\n value: value\n })\n };\n } catch(e) {\n return function(obj, name, value) {\n obj[name] = value;\n };\n }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n if (!(this instanceof Script)) return new Script(code);\n this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n if (!(context instanceof Context)) {\n throw new TypeError(\"needs a 'context' argument.\");\n }\n \n var iframe = document.createElement('iframe');\n if (!iframe.style) iframe.style = {};\n iframe.style.display = 'none';\n \n document.body.appendChild(iframe);\n \n var win = iframe.contentWindow;\n var wEval = win.eval, wExecScript = win.execScript;\n\n if (!wEval && wExecScript) {\n // win.eval() magically appears when this is called in IE:\n wExecScript.call(win, 'null');\n wEval = win.eval;\n }\n \n forEach(Object_keys(context), function (key) {\n win[key] = context[key];\n });\n forEach(globals, function (key) {\n if (context[key]) {\n win[key] = context[key];\n }\n });\n \n var winKeys = Object_keys(win);\n\n var res = wEval.call(win, this.code);\n \n forEach(Object_keys(win), function (key) {\n // Avoid copying circular objects like `top` and `window` by only\n // updating existing context properties or new properties in the `win`\n // that was only introduced after the eval.\n if (key in context || indexOf(winKeys, key) === -1) {\n context[key] = win[key];\n }\n });\n\n forEach(globals, function (key) {\n if (!(key in context)) {\n defineProp(context, key, win[key]);\n }\n });\n \n document.body.removeChild(iframe);\n \n return res;\n};\n\nScript.prototype.runInThisContext = function () {\n return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n var ctx = Script.createContext(context);\n var res = this.runInContext(ctx);\n\n forEach(Object_keys(ctx), function (key) {\n context[key] = ctx[key];\n });\n\n return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n exports[name] = Script[name] = function (code) {\n var s = Script(code);\n return s[name].apply(s, [].slice.call(arguments, 1));\n };\n});\n\nexports.createScript = function (code) {\n return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n var copy = new Context();\n if(typeof context === 'object') {\n forEach(Object_keys(context), function (key) {\n copy[key] = context[key];\n });\n }\n return copy;\n};\n"]}