diff --git a/package-lock.json b/package-lock.json index cf097bb..cfab156 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "0.1.0", "dependencies": { "core-js": "^3.8.3", + "stream": "^0.0.2", "vue": "^3.2.13" }, "devDependencies": { @@ -5040,6 +5041,11 @@ "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==", "dev": true }, + "node_modules/emitter-component": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/emitter-component/-/emitter-component-1.1.2.tgz", + "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -9755,6 +9761,14 @@ "node": ">= 0.8" } }, + "node_modules/stream": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stream/-/stream-0.0.2.tgz", + "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "dependencies": { + "emitter-component": "^1.1.1" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", @@ -11571,7 +11585,8 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true + "dev": true, + "requires": {} }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", @@ -13168,7 +13183,8 @@ "version": "5.0.8", "resolved": "https://registry.npmmirror.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", - "dev": true + "dev": true, + "requires": {} }, "@vue/cli-service": { "version": "5.0.8", @@ -13677,13 +13693,15 @@ "version": "1.9.0", "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true + "dev": true, + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.3.2", @@ -13742,7 +13760,8 @@ "version": "3.5.2", "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "4.1.3", @@ -14551,7 +14570,8 @@ "version": "6.4.1", "resolved": "https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true + "dev": true, + "requires": {} }, "css-loader": { "version": "6.10.0", @@ -14737,7 +14757,8 @@ "version": "3.1.0", "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true + "dev": true, + "requires": {} }, "csso": { "version": "4.2.0", @@ -15052,6 +15073,11 @@ "integrity": "sha512-zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==", "dev": true }, + "emitter-component": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/emitter-component/-/emitter-component-1.1.2.tgz", + "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -16290,7 +16316,8 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -17678,25 +17705,29 @@ "version": "5.1.2", "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true + "dev": true, + "requires": {} }, "postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-loader": { "version": "6.2.1", @@ -17801,7 +17832,8 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.4", @@ -17836,7 +17868,8 @@ "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -18750,6 +18783,14 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "stream": { + "version": "0.0.2", + "resolved": "https://registry.npmmirror.com/stream/-/stream-0.0.2.tgz", + "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "requires": { + "emitter-component": "^1.1.1" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", @@ -19621,7 +19662,8 @@ "version": "8.16.0", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz", "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -19743,7 +19785,8 @@ "version": "7.5.9", "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true + "dev": true, + "requires": {} }, "y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index 5414d33..b71ffba 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "core-js": "^3.8.3", + "stream": "^0.0.2", "vue": "^3.2.13" }, "devDependencies": { @@ -32,7 +33,11 @@ "parserOptions": { "parser": "@babel/eslint-parser" }, - "rules": {} + "rules": { + "no-unused-vars": "off", + "no-undef": "off", + "no-redeclare": "off" + } }, "browserslist": [ "> 1%", diff --git a/public/cpu.vcd b/public/cpu.vcd new file mode 100644 index 0000000..753bedd --- /dev/null +++ b/public/cpu.vcd @@ -0,0 +1,8007 @@ +$date + Mon Jan 4 17:57:07 2021 +$end +$version + Icarus Verilog +$end +$timescale + 1s +$end +$scope module ID_EX $end +$var wire 2 ! AluOp [1:0] $end +$var wire 1 " AluSrc $end +$var wire 1 # MemRead $end +$var wire 1 $ MemWrite $end +$var wire 1 % MemtoReg $end +$var wire 1 & RegWrite $end +$var wire 1 ' clk_i $end +$var wire 3 ( func3 [2:0] $end +$var wire 7 ) func7 [6:0] $end +$var wire 32 * imm_o [31:0] $end +$var wire 32 + rd_addr [31:0] $end +$var wire 32 , rs1_addr [31:0] $end +$var wire 32 - rs1_data [31:0] $end +$var wire 32 . rs2_addr [31:0] $end +$var wire 32 / rs2_data [31:0] $end +$var reg 2 0 ID_EX_AluOp [1:0] $end +$var reg 1 1 ID_EX_AluSrc $end +$var reg 32 2 ID_EX_IMM [31:0] $end +$var reg 1 3 ID_EX_MemRead $end +$var reg 1 4 ID_EX_MemWrite $end +$var reg 1 5 ID_EX_MemtoReg $end +$var reg 5 6 ID_EX_RD [4:0] $end +$var reg 5 7 ID_EX_RS1 [4:0] $end +$var reg 32 8 ID_EX_RS1data [31:0] $end +$var reg 5 9 ID_EX_RS2 [4:0] $end +$var reg 32 : ID_EX_RS2data [31:0] $end +$var reg 1 ; ID_EX_RegWrite $end +$var reg 3 < ID_EX_func3 [2:0] $end +$var reg 7 = ID_EX_func7 [6:0] $end +$upscope $end +$scope module testbench $end +$var wire 256 > mem_cpu_data [255:0] $end +$var wire 1 ? mem_cpu_ack $end +$var wire 1 @ cpu_mem_write $end +$var wire 1 A cpu_mem_enable $end +$var wire 256 B cpu_mem_data [255:0] $end +$var wire 32 C cpu_mem_addr [31:0] $end +$var reg 1 D Clk $end +$var reg 1 E Reset $end +$var reg 1 F Start $end +$var reg 27 G address [26:0] $end +$var reg 1 H flag $end +$var reg 4 I index [3:0] $end +$var reg 25 J tag [24:0] $end +$var integer 32 K counter [31:0] $end +$var integer 32 L i [31:0] $end +$var integer 32 M j [31:0] $end +$var integer 32 N outfile [31:0] $end +$var integer 32 O outfile2 [31:0] $end +$scope module CPU $end +$var wire 1 D clk_i $end +$var wire 1 E rst_i $end +$var wire 1 F start_i $end +$var wire 32 P wb_data [31:0] $end +$var wire 32 Q rs2_data [31:0] $end +$var wire 2 R rs2_ctrl [1:0] $end +$var wire 5 S rs2_addr [4:0] $end +$var wire 32 T rs1_data [31:0] $end +$var wire 2 U rs1_ctrl [1:0] $end +$var wire 5 V rs1_addr [4:0] $end +$var wire 5 W rd_addr [4:0] $end +$var wire 32 X pc_o [31:0] $end +$var wire 32 Y pc_i [31:0] $end +$var wire 32 Z pc_add4 [31:0] $end +$var wire 7 [ opcode [6:0] $end +$var wire 32 \ mux_o [31:0] $end +$var wire 1 @ mem_write_o $end +$var wire 1 A mem_enable_o $end +$var wire 256 ] mem_data_o [255:0] $end +$var wire 256 ^ mem_data_i [255:0] $end +$var wire 32 _ mem_addr_o [31:0] $end +$var wire 1 ? mem_ack_i $end +$var wire 32 ` instr [31:0] $end +$var wire 32 a imm_o [31:0] $end +$var wire 12 b imm_i [11:0] $end +$var wire 7 c func7 [6:0] $end +$var wire 3 d func3 [2:0] $end +$var wire 1 e cpu_stall_o $end +$var wire 1 f Stall $end +$var wire 1 g RegWrite $end +$var wire 1 h PcWrite $end +$var wire 32 i PC_Branch [31:0] $end +$var wire 1 j NoOp $end +$var wire 1 k MemtoReg $end +$var wire 1 l MemWrite $end +$var wire 1 m MemRead $end +$var wire 32 n MemData_o [31:0] $end +$var wire 32 o IF_ID_PC [31:0] $end +$var wire 32 p IF_ID_IR [31:0] $end +$var wire 1 q Flush $end +$var wire 1 r Branch $end +$var wire 1 s AluSrc $end +$var wire 2 t AluOp [1:0] $end +$var wire 3 u AluControl_o [2:0] $end +$var wire 32 v ALU_o [31:0] $end +$var wire 32 w ALU_RS2 [31:0] $end +$var wire 32 x ALU_RS1 [31:0] $end +$var reg 32 y EX_MEM_ALUout [31:0] $end +$var reg 1 z EX_MEM_MemRead $end +$var reg 1 { EX_MEM_MemWrite $end +$var reg 1 | EX_MEM_MemtoReg $end +$var reg 5 } EX_MEM_RD [4:0] $end +$var reg 1 ~ EX_MEM_RegWrite $end +$var reg 32 !" EX_MEM_WriteData [31:0] $end +$var reg 2 "" ID_EX_AluOp [1:0] $end +$var reg 1 #" ID_EX_AluSrc $end +$var reg 32 $" ID_EX_IMM [31:0] $end +$var reg 1 %" ID_EX_MemRead $end +$var reg 1 &" ID_EX_MemWrite $end +$var reg 1 '" ID_EX_MemtoReg $end +$var reg 5 (" ID_EX_RD [4:0] $end +$var reg 5 )" ID_EX_RS1 [4:0] $end +$var reg 32 *" ID_EX_RS1data [31:0] $end +$var reg 5 +" ID_EX_RS2 [4:0] $end +$var reg 32 ," ID_EX_RS2data [31:0] $end +$var reg 1 -" ID_EX_RegWrite $end +$var reg 3 ." ID_EX_func3 [2:0] $end +$var reg 7 /" ID_EX_func7 [6:0] $end +$var reg 32 0" MEM_WB_ALUout [31:0] $end +$var reg 32 1" MEM_WB_MEMout [31:0] $end +$var reg 1 2" MEM_WB_MemtoReg $end +$var reg 5 3" MEM_WB_RD [4:0] $end +$var reg 1 4" MEM_WB_RegWrite $end +$scope module ALU $end +$var wire 32 5" rs1_data [31:0] $end +$var wire 32 6" mux_o [31:0] $end +$var wire 3 7" AluControl [2:0] $end +$var reg 32 8" ALU_o [31:0] $end +$upscope $end +$scope module ALU_Control $end +$var wire 2 9" AluOp [1:0] $end +$var wire 3 :" func3 [2:0] $end +$var wire 7 ;" func7 [6:0] $end +$var reg 3 <" AluControl_o [2:0] $end +$upscope $end +$scope module ALU_Src_Mux $end +$var wire 1 #" ctrl_signal $end +$var wire 32 =" input1 [31:0] $end +$var wire 32 >" out [31:0] $end +$var wire 32 ?" input0 [31:0] $end +$upscope $end +$scope module Add4 $end +$var wire 32 @" pc_o [31:0] $end +$var wire 32 A" pc_i [31:0] $end +$upscope $end +$scope module Adder $end +$var wire 32 B" PC_Branch [31:0] $end +$var wire 32 C" IF_ID_PC [31:0] $end +$var wire 32 D" IF_ID_Imm [31:0] $end +$upscope $end +$scope module Control $end +$var wire 7 E" opcode [6:0] $end +$var wire 1 g RegWrite $end +$var wire 1 j NoOp $end +$var wire 1 k MemtoReg $end +$var wire 1 l MemWrite $end +$var wire 1 m MemRead $end +$var wire 1 r Branch $end +$var wire 1 s AluSrc $end +$var wire 2 F" AluOp [1:0] $end +$upscope $end +$scope module Forwarding_Unit $end +$var wire 5 G" EX_MEM_RD [4:0] $end +$var wire 1 ~ EX_MEM_RegWrite $end +$var wire 5 H" ID_EX_RS1 [4:0] $end +$var wire 5 I" ID_EX_RS2 [4:0] $end +$var wire 5 J" MEM_WB_RD [4:0] $end +$var wire 1 4" MEM_WB_RegWrite $end +$var wire 2 K" Forward_Control2 [1:0] $end +$var wire 2 L" Forward_Control1 [1:0] $end +$upscope $end +$scope module Hazard_Detection $end +$var wire 1 %" ID_EX_MemRead $end +$var wire 5 M" ID_EX_RD [4:0] $end +$var wire 5 N" rs1_addr [4:0] $end +$var wire 5 O" rs2_addr [4:0] $end +$var wire 1 f Stall_o $end +$var wire 1 h PcWrite_o $end +$var wire 1 j NoOp_o $end +$upscope $end +$scope module IF_ID $end +$var wire 1 q Flush $end +$var wire 1 f Stall $end +$var wire 1 D clk_i $end +$var wire 32 P" pc_o [31:0] $end +$var wire 32 Q" instr [31:0] $end +$var wire 1 e cpu_stall_o $end +$var reg 32 R" IF_ID_IR [31:0] $end +$var reg 32 S" IF_ID_PC [31:0] $end +$upscope $end +$scope module Instruction_Memory $end +$var wire 32 T" instr_o [31:0] $end +$var wire 32 U" addr_i [31:0] $end +$upscope $end +$scope module PC $end +$var wire 1 h PCWrite_i $end +$var wire 1 D clk_i $end +$var wire 1 E rst_i $end +$var wire 1 F start_i $end +$var wire 1 e stall_i $end +$var wire 32 V" pc_i [31:0] $end +$var reg 32 W" pc_o [31:0] $end +$upscope $end +$scope module PC_Mux $end +$var wire 1 q ctrl_signal $end +$var wire 32 X" input0 [31:0] $end +$var wire 32 Y" input1 [31:0] $end +$var wire 32 Z" out [31:0] $end +$upscope $end +$scope module RS1_Forwarding $end +$var wire 32 [" EX_MEM_ALUout [31:0] $end +$var wire 32 \" ID_EX_RS [31:0] $end +$var wire 2 ]" ctrl [1:0] $end +$var wire 32 ^" forword_out [31:0] $end +$var wire 32 _" WB_WBdata [31:0] $end +$upscope $end +$scope module RS2_Forwarding $end +$var wire 32 `" EX_MEM_ALUout [31:0] $end +$var wire 32 a" ID_EX_RS [31:0] $end +$var wire 2 b" ctrl [1:0] $end +$var wire 32 c" forword_out [31:0] $end +$var wire 32 d" WB_WBdata [31:0] $end +$upscope $end +$scope module Registers $end +$var wire 5 e" RDaddr_i [4:0] $end +$var wire 5 f" RS1addr_i [4:0] $end +$var wire 5 g" RS2addr_i [4:0] $end +$var wire 1 4" RegWrite_i $end +$var wire 1 D clk_i $end +$var wire 32 h" RS2data_o [31:0] $end +$var wire 32 i" RS1data_o [31:0] $end +$var wire 32 j" RDdata_i [31:0] $end +$upscope $end +$scope module Sign_Extend $end +$var wire 12 k" imm_i [11:0] $end +$var wire 32 l" imm_o [31:0] $end +$upscope $end +$scope module WB_Mux $end +$var wire 1 2" ctrl_signal $end +$var wire 32 m" input0 [31:0] $end +$var wire 32 n" input1 [31:0] $end +$var wire 32 o" out [31:0] $end +$upscope $end +$scope module dcache $end +$var wire 1 p" cache_dirty $end +$var wire 1 q" cache_sram_enable $end +$var wire 4 r" cache_sram_index [3:0] $end +$var wire 1 s" cache_sram_write $end +$var wire 1 D clk_i $end +$var wire 1 z cpu_MemRead_i $end +$var wire 1 { cpu_MemWrite_i $end +$var wire 32 t" cpu_addr_i [31:0] $end +$var wire 32 u" cpu_data_i [31:0] $end +$var wire 32 v" cpu_data_o [31:0] $end +$var wire 1 w" cpu_req $end +$var wire 1 e cpu_stall_o $end +$var wire 256 x" mem_data_o [255:0] $end +$var wire 1 A mem_enable_o $end +$var wire 1 @ mem_write_o $end +$var wire 256 y" r_hit_data [255:0] $end +$var wire 1 E rst_i $end +$var wire 1 z" write_hit $end +$var wire 1 {" sram_valid $end +$var wire 22 |" sram_tag [21:0] $end +$var wire 1 }" sram_dirty $end +$var wire 25 ~" sram_cache_tag [24:0] $end +$var wire 256 !# sram_cache_data [255:0] $end +$var wire 256 "# mem_data_i [255:0] $end +$var wire 32 ## mem_addr_o [31:0] $end +$var wire 1 ? mem_ack_i $end +$var wire 1 $# hit $end +$var wire 23 %# cpu_tag [22:0] $end +$var wire 5 &# cpu_offset [4:0] $end +$var wire 4 '# cpu_index [3:0] $end +$var wire 25 (# cache_sram_tag [24:0] $end +$var wire 256 )# cache_sram_data [255:0] $end +$var reg 1 *# cache_write $end +$var reg 32 +# cpu_data [31:0] $end +$var reg 1 ,# mem_enable $end +$var reg 1 -# mem_write $end +$var reg 3 .# state [2:0] $end +$var reg 256 /# w_hit_data [255:0] $end +$var reg 1 0# write_back $end +$scope module dcache_sram $end +$var wire 4 1# addr_i [3:0] $end +$var wire 1 D clk_i $end +$var wire 256 2# data_i [255:0] $end +$var wire 1 q" enable_i $end +$var wire 1 E rst_i $end +$var wire 25 3# tag_i [24:0] $end +$var wire 1 s" write_i $end +$var wire 25 4# tag_o [24:0] $end +$var wire 1 $# hit_o $end +$var wire 256 5# data_o [255:0] $end +$var wire 2 6# ctrl [1:0] $end +$var integer 32 7# i [31:0] $end +$var integer 32 8# j [31:0] $end +$scope module Hit $end +$var wire 25 9# cpu_tag [24:0] $end +$var wire 25 :# sram_tag1 [24:0] $end +$var wire 25 ;# sram_tag2 [24:0] $end +$var wire 2 <# ctrl [1:0] $end +$upscope $end +$upscope $end +$upscope $end +$upscope $end +$scope module Data_Memory $end +$var wire 1 ? ack_o $end +$var wire 32 =# addr_i [31:0] $end +$var wire 1 D clk_i $end +$var wire 256 ># data_i [255:0] $end +$var wire 256 ?# data_o [255:0] $end +$var wire 1 A enable_i $end +$var wire 1 E rst_i $end +$var wire 1 @ write_i $end +$var wire 27 @# addr [26:0] $end +$var reg 4 A# count [3:0] $end +$var reg 256 B# data [255:0] $end +$var reg 2 C# state [1:0] $end +$upscope $end +$upscope $end +$enddefinitions $end +#0 +$dumpvars +b0 C# +bx B# +b0 A# +bx @# +bx ?# +bx ># +bx00000 =# +bx <# +bx ;# +bx :# +b1xxxxxxxxxxxxxxxxxxxxxxxx 9# +b10 8# +b10000 7# +bx 6# +bx 5# +bx 4# +b1xxxxxxxxxxxxxxxxxxxxxxxx 3# +bx 2# +bx 1# +00# +bx /# +b0 .# +0-# +0,# +bx +# +0*# +bx )# +b1xxxxxxxxxxxxxxxxxxxxxxxx (# +bx '# +bx &# +bx %# +x$# +bx00000 ## +bx "# +bx !# +bx ~" +x}" +bx |" +x{" +xz" +bx y" +bx x" +xw" +bx v" +bx u" +bx t" +xs" +bx r" +xq" +xp" +bx o" +bx n" +bx m" +bx l" +bx k" +bx j" +bx i" +bx h" +bx g" +bx f" +bx e" +bx d" +bx c" +b0 b" +bx a" +bx `" +bx _" +bx ^" +b0 ]" +bx \" +bx [" +bx Z" +bx Y" +b100 X" +b0 W" +bx V" +b0 U" +bx T" +bx S" +bx R" +bx Q" +b0 P" +bx O" +bx N" +bx M" +b0 L" +b0 K" +bx J" +bx I" +bx H" +bx G" +bx F" +bx E" +bx D" +bx C" +bx B" +b0 A" +b100 @" +bx ?" +bx >" +bx =" +bx <" +bx ;" +bx :" +bx 9" +bx 8" +bx 7" +bx 6" +bx 5" +x4" +bx 3" +x2" +bx 1" +bx 0" +bx /" +bx ." +x-" +bx ," +bx +" +bx *" +bx )" +bx (" +x'" +x&" +x%" +bx $" +x#" +bx "" +bx !" +x~ +bx } +x| +x{ +xz +bx y +bx x +bx w +bx v +bx u +bx t +xs +xr +xq +bx p +bx o +bx n +xm +xl +xk +xj +bx i +xh +xg +xf +xe +bx d +bx c +bx b +bx a +bx ` +bx00000 _ +bx ^ +bx ] +bx \ +bx [ +b100 Z +bx Y +b0 X +bx W +bx V +b0 U +bx T +bx S +b0 R +bx Q +bx P +bx O +bx N +bx M +bx L +b0 K +bx J +bx I +xH +bx G +0F +1E +0D +bx00000 C +bx B +0A +0@ +0? +bx > +bx = +bx < +x; +bx : +bx 9 +bx 8 +bx 7 +bx 6 +x5 +x4 +x3 +bx 2 +x1 +bx 0 +bz / +bz . +bz - +bz , +bz + +bz * +bz ) +bz ( +z' +z& +z% +z$ +z# +z" +bz ! +$end +#12 +b0 n +b0 v" +b0 +# +b100 Y +b100 V" +b100 Z" +b0 |" +b0 i +b0 B" +b0 Y" +0q +0}" +0{" +0$# +0g +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 ~" +b0 4# +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b0 @# +b10 6# +b10 <# +1s +0r +0m +0l +0k +b0 t +b0 F" +b0 Q +b0 h" +0s" +0e +b0 C +b0 _ +b0 ## +b0 =# +1h +0f +0j +b0 v +b0 8" +b0 S +b0 O" +b0 g" +b0 T +b0 i" +b0 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +0p" +0z" +0q" +0w" +b0 /# +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 :# +b0 ;# +b0 r" +b0 1# +b0 '# +b0 &# +b0 u +b0 7" +b0 <" +b0 \ +b0 6" +b0 >" +b0 w +b0 ?" +b0 c" +b0 x +b0 5" +b0 ^" +b0 c +b0 V +b0 N" +b0 f" +b0 d +b100 [ +b100 E" +02" +04" +b0 3" +b0 J" +b0 e" +b0 0" +b0 m" +b0 1" +b0 n" +0{ +0z +0| +0~ +b0 } +b0 G" +b0 !" +b0 u" +b0 y +b0 [" +b0 `" +b0 t" +0&" +0%" +0'" +0-" +0#" +b0 "" +b0 9" +b0 ." +b0 :" +b0 /" +b0 ;" +b0 $" +b0 =" +b0 ," +b0 a" +b0 *" +b0 \" +b0 +" +b0 I" +b0 )" +b0 H" +b0 (" +b0 M" +b0 o +b0 C" +b0 S" +b100 p +b100 R" +b101 O +b11 N +b10 M +b10010000000011 ` +b10010000000011 Q" +b10010000000011 T" +b1000000000 L +1F +0E +#25 +1g +1m +1k +b1000 W +b10 d +b11 [ +b11 E" +b10000000010010010000011 ` +b10000000010010010000011 Q" +b10000000010010010000011 T" +b1000 Y +b1000 V" +b1000 Z" +b10010000000011 p +b10010000000011 R" +1#" +b1000 Z +b1000 @" +b1000 X" +b100 X +b100 A" +b100 P" +b100 U" +b100 W" +b1 K +0H +1D +#50 +0D +#75 +1s +1g +1k +1m +1h +0f +0j +b100 a +b100 D" +b100 l" +b100 b +b100 k" +b1001 W +b100000000010010100000011 ` +b100000000010010100000011 Q" +b100000000010010100000011 T" +b1100 Y +b1100 V" +b1100 Z" +1%" +1'" +1-" +b10 ." +b10 :" +b1000 (" +b1000 M" +b1100 i +b1100 B" +b1100 Y" +b100 o +b100 C" +b100 S" +b10000000010010010000011 p +b10000000010010010000011 R" +b1100 Z +b1100 @" +b1100 X" +b1000 X +b1000 A" +b1000 P" +b1000 U" +b1000 W" +b10 K +1D +#100 +0D +#125 +b1000 a +b1000 D" +b1000 l" +b1000 b +b1000 k" +b1010 W +b100 v +b100 8" +1e +b100 \ +b100 6" +b100 >" +1q" +1w" +b110000000010010110000011 ` +b110000000010010110000011 Q" +b110000000010010110000011 T" +b10000 Y +b10000 V" +b10000 Z" +b11000 i +b11000 B" +b11000 Y" +b1000 o +b1000 C" +b1000 S" +b100000000010010100000011 p +b100000000010010100000011 R" +b100 $" +b100 =" +b1001 (" +b1001 M" +1z +1| +1~ +b1000 } +b1000 G" +b10000 Z +b10000 @" +b10000 X" +b1100 X +b1100 A" +b1100 P" +b1100 U" +b1100 W" +b11 K +1D +#150 +0D +#175 +b100 .# +b100 K +1H +1D +#200 +0D +#225 +b1 .# +1A +1,# +b101 K +1D +#250 +0D +#275 +b1 A# +b1 C# +b110 K +1D +#300 +0D +#325 +b10 A# +b111 K +1D +#350 +0D +#375 +b11 A# +b1000 K +1D +#400 +0D +#425 +b100 A# +b1001 K +1D +#450 +0D +#475 +b101 A# +b1010 K +1D +#500 +0D +#525 +b110 A# +b1011 K +1D +#550 +0D +#575 +b111 A# +b1100 K +1D +#600 +0D +#625 +b1000 A# +b1101 K +1D +#650 +0D +#675 +1? +b1001 A# +b1110 K +1D +#700 +0D +#725 +0? +1s" +b0 A# +b0 C# +b10 .# +0A +0,# +1*# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 > +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ^ +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 "# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ?# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B# +b1111 K +1D +#750 +0D +#775 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +0e +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110100000000000000000000000000000000 /# +1{" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +0s" +b1000000000000000000000000 :# +b0 .# +0*# +b10000 K +1D +#800 +0D +#825 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 2# +b1100 a +b1100 D" +b1100 l" +b1100 b +b1100 k" +b1011 W +b1000 v +b1000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110110000000000000000000000000000000011101110111011101111111111111111 /# +b1000 \ +b1000 6" +b1000 >" +b100 &# +b11101110111011101111111111111111 P +b11101110111011101111111111111111 _" +b11101110111011101111111111111111 d" +b11101110111011101111111111111111 j" +b11101110111011101111111111111111 o" +b1000000000010011000000011 ` +b1000000000010011000000011 Q" +b1000000000010011000000011 T" +b10100 Y +b10100 V" +b10100 Z" +b100100 i +b100100 B" +b100100 Y" +b1100 o +b1100 C" +b1100 S" +b110000000010010110000011 p +b110000000010010110000011 R" +b1000 $" +b1000 =" +b1010 (" +b1010 M" +b1001 } +b1001 G" +b100 y +b100 [" +b100 `" +b100 t" +12" +14" +b1000 3" +b1000 J" +b1000 e" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10100 Z +b10100 @" +b10100 X" +b10000 X +b10000 A" +b10000 P" +b10000 U" +b10000 W" +b10001 K +0H +1D +#850 +0D +#875 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001000000000000000000000000000000001100110011001100110111011101110111101110111011101111111111111111 /# +b1100 v +b1100 8" +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b1100 W +b11001100110011001101110111011101 P +b11001100110011001101110111011101 _" +b11001100110011001101110111011101 d" +b11001100110011001101110111011101 j" +b11001100110011001101110111011101 o" +b1000 &# +b1100 \ +b1100 6" +b1100 >" +b1010000000010011010000011 ` +b1010000000010011010000011 Q" +b1010000000010011010000011 T" +b11000 Y +b11000 V" +b11000 Z" +b1001 3" +b1001 J" +b1001 e" +b100 0" +b100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b1010 } +b1010 G" +b1000 y +b1000 [" +b1000 `" +b1000 t" +b1100 $" +b1100 =" +b1011 (" +b1011 M" +b110000 i +b110000 B" +b110000 Y" +b10000 o +b10000 C" +b10000 S" +b1000000000010011000000011 p +b1000000000010011000000011 R" +b11000 Z +b11000 @" +b11000 X" +b10100 X +b10100 A" +b10100 P" +b10100 U" +b10100 W" +b10010 K +1D +#900 +0D +#925 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b10100 a +b10100 D" +b10100 l" +b10100 b +b10100 k" +b1101 W +b10000 v +b10000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011100000000000000000000000000000000101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b10000 \ +b10000 6" +b10000 >" +b1100 &# +b10101010101010101011101110111011 P +b10101010101010101011101110111011 _" +b10101010101010101011101110111011 d" +b10101010101010101011101110111011 j" +b10101010101010101011101110111011 o" +b1100000000010011100000011 ` +b1100000000010011100000011 Q" +b1100000000010011100000011 T" +b11100 Y +b11100 V" +b11100 Z" +b111100 i +b111100 B" +b111100 Y" +b10100 o +b10100 C" +b10100 S" +b1010000000010011010000011 p +b1010000000010011010000011 R" +b10000 $" +b10000 =" +b1100 (" +b1100 M" +b1011 } +b1011 G" +b1100 y +b1100 [" +b1100 `" +b1100 t" +b1010 3" +b1010 J" +b1010 e" +b1000 0" +b1000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b11100 Z +b11100 @" +b11100 X" +b11000 X +b11000 A" +b11000 P" +b11000 U" +b11000 W" +b10011 K +1D +#950 +0D +#975 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b10100 v +b10100 8" +b11000 a +b11000 D" +b11000 l" +b11000 b +b11000 k" +b1110 W +b10001000100010001001100110011001 P +b10001000100010001001100110011001 _" +b10001000100010001001100110011001 d" +b10001000100010001001100110011001 j" +b10001000100010001001100110011001 o" +b10000 &# +b10100 \ +b10100 6" +b10100 >" +b1110000000010011110000011 ` +b1110000000010011110000011 Q" +b1110000000010011110000011 T" +b100000 Y +b100000 V" +b100000 Z" +b1011 3" +b1011 J" +b1011 e" +b1100 0" +b1100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b1100 } +b1100 G" +b10000 y +b10000 [" +b10000 `" +b10000 t" +b10100 $" +b10100 =" +b1101 (" +b1101 M" +b1001000 i +b1001000 B" +b1001000 Y" +b11000 o +b11000 C" +b11000 S" +b1100000000010011100000011 p +b1100000000010011100000011 R" +b100000 Z +b100000 @" +b100000 X" +b11100 X +b11100 A" +b11100 P" +b11100 U" +b11100 W" +b10100 K +1D +#1000 +0D +#1025 +b1000100010001000101010101010101 n +b1000100010001000101010101010101 v" +b1000100010001000101010101010101 +# +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b11100 a +b11100 D" +b11100 l" +b11100 b +b11100 k" +b1111 W +b11000 v +b11000 8" +b100010001000100100010001000100011001100110011000000000000000000000000000000000110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b11000 \ +b11000 6" +b11000 >" +b10100 &# +b1100110011001100111011101110111 P +b1100110011001100111011101110111 _" +b1100110011001100111011101110111 d" +b1100110011001100111011101110111 j" +b1100110011001100111011101110111 o" +b10000000000010100000000011 ` +b10000000000010100000000011 Q" +b10000000000010100000000011 T" +b100100 Y +b100100 V" +b100100 Z" +b1010100 i +b1010100 B" +b1010100 Y" +b11100 o +b11100 C" +b11100 S" +b1110000000010011110000011 p +b1110000000010011110000011 R" +b11000 $" +b11000 =" +b1110 (" +b1110 M" +b1101 } +b1101 G" +b10100 y +b10100 [" +b10100 `" +b10100 t" +b1100 3" +b1100 J" +b1100 e" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b100100 Z +b100100 @" +b100100 X" +b100000 X +b100000 A" +b100000 P" +b100000 U" +b100000 W" +b10101 K +1D +#1050 +0D +#1075 +b100010001000100011001100110011 n +b100010001000100011001100110011 v" +b100010001000100011001100110011 +# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100010001000100000000000000000000000000000000010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b11100 v +b11100 8" +b100000 a +b100000 D" +b100000 l" +b100000 b +b100000 k" +b10000 W +b1000100010001000101010101010101 P +b1000100010001000101010101010101 _" +b1000100010001000101010101010101 d" +b1000100010001000101010101010101 j" +b1000100010001000101010101010101 o" +b11000 &# +b11100 \ +b11100 6" +b11100 >" +b1 c +b10010000000010100010000011 ` +b10010000000010100010000011 Q" +b10010000000010100010000011 T" +b101000 Y +b101000 V" +b101000 Z" +b1101 3" +b1101 J" +b1101 e" +b10100 0" +b10100 m" +b1000100010001000101010101010101 1" +b1000100010001000101010101010101 n" +b1110 } +b1110 G" +b11000 y +b11000 [" +b11000 `" +b11000 t" +b11100 $" +b11100 =" +b1111 (" +b1111 M" +b1100000 i +b1100000 B" +b1100000 Y" +b100000 o +b100000 C" +b100000 S" +b10000000000010100000000011 p +b10000000000010100000000011 R" +b101000 Z +b101000 @" +b101000 X" +b100100 X +b100100 A" +b100100 P" +b100100 U" +b100100 W" +b10110 K +1D +#1100 +0D +#1125 +b1000100010001 n +b1000100010001 v" +b1000100010001 +# +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100100 a +b100100 D" +b100100 l" +b100100 b +b100100 k" +b10001 W +b100000 v +b100000 8" +b100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b100000 \ +b100000 6" +b100000 >" +b11100 &# +b100010001000100011001100110011 P +b100010001000100011001100110011 _" +b100010001000100011001100110011 d" +b100010001000100011001100110011 j" +b100010001000100011001100110011 o" +b10100000000010100100000011 ` +b10100000000010100100000011 Q" +b10100000000010100100000011 T" +b101100 Y +b101100 V" +b101100 Z" +b1101100 i +b1101100 B" +b1101100 Y" +b100100 o +b100100 C" +b100100 S" +b10010000000010100010000011 p +b10010000000010100010000011 R" +b1 /" +b1 ;" +b100000 $" +b100000 =" +b10000 (" +b10000 M" +b1111 } +b1111 G" +b11100 y +b11100 [" +b11100 `" +b11100 t" +b1110 3" +b1110 J" +b1110 e" +b11000 0" +b11000 m" +b100010001000100011001100110011 1" +b100010001000100011001100110011 n" +b101100 Z +b101100 @" +b101100 X" +b101000 X +b101000 A" +b101000 P" +b101000 U" +b101000 W" +b10111 K +1D +#1150 +0D +#1175 +b0 n +b0 v" +b0 +# +1e +0$# +b1 @# +b10 6# +b10 <# +0{" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b100000 C +b100000 _ +b100000 ## +b100000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 /# +b100100 v +b100100 8" +b101000 a +b101000 D" +b101000 l" +b101000 b +b101000 k" +b10010 W +b1000100010001 P +b1000100010001 _" +b1000100010001 d" +b1000100010001 j" +b1000100010001 o" +b0 :# +b1 r" +b1 1# +b1 '# +b0 &# +b100100 \ +b100100 6" +b100100 >" +b10110000000010100110000011 ` +b10110000000010100110000011 Q" +b10110000000010100110000011 T" +b110000 Y +b110000 V" +b110000 Z" +b1111 3" +b1111 J" +b1111 e" +b11100 0" +b11100 m" +b1000100010001 1" +b1000100010001 n" +b10000 } +b10000 G" +b100000 y +b100000 [" +b100000 `" +b100000 t" +b100100 $" +b100100 =" +b10001 (" +b10001 M" +b1111000 i +b1111000 B" +b1111000 Y" +b101000 o +b101000 C" +b101000 S" +b10100000000010100100000011 p +b10100000000010100100000011 R" +b110000 Z +b110000 @" +b110000 X" +b101100 X +b101100 A" +b101100 P" +b101100 U" +b101100 W" +b11000 K +1D +#1200 +0D +#1225 +b100 .# +b11001 K +1H +1D +#1250 +0D +#1275 +b1 .# +1A +1,# +b11010 K +1D +#1300 +0D +#1325 +b1 A# +b1 C# +b11011 K +1D +#1350 +0D +#1375 +b10 A# +b11100 K +1D +#1400 +0D +#1425 +b11 A# +b11101 K +1D +#1450 +0D +#1475 +b100 A# +b11110 K +1D +#1500 +0D +#1525 +b101 A# +b11111 K +1D +#1550 +0D +#1575 +b110 A# +b100000 K +1D +#1600 +0D +#1625 +b111 A# +b100001 K +1D +#1650 +0D +#1675 +b1000 A# +b100010 K +1D +#1700 +0D +#1725 +1? +b1001 A# +b100011 K +1D +#1750 +0D +#1775 +1s" +0? +b10 .# +0A +0,# +1*# +b0 A# +b0 C# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b100100 K +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 > +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ^ +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 "# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ?# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B# +1D +#1800 +0D +#1825 +b10001000100010000000000000000 n +b10001000100010000000000000000 v" +b10001000100010000000000000000 +# +0e +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 /# +1{" +0s" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 .# +0*# +b1000000000000000000000000 :# +b100101 K +1D +#1850 +0D +#1875 +b110011001100110010001000100010 n +b110011001100110010001000100010 v" +b110011001100110010001000100010 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000000000000000000000000000000000000010001000100010000000000000000 /# +b101000 v +b101000 8" +b101100 a +b101100 D" +b101100 l" +b101100 b +b101100 k" +b10011 W +b10001000100010000000000000000 P +b10001000100010000000000000000 _" +b10001000100010000000000000000 d" +b10001000100010000000000000000 j" +b10001000100010000000000000000 o" +b100 &# +b101000 \ +b101000 6" +b101000 >" +b11000000000010101000000011 ` +b11000000000010101000000011 Q" +b11000000000010101000000011 T" +b110100 Y +b110100 V" +b110100 Z" +b10000 3" +b10000 J" +b10000 e" +b100000 0" +b100000 m" +b10001000100010000000000000000 1" +b10001000100010000000000000000 n" +b10001 } +b10001 G" +b100100 y +b100100 [" +b100100 `" +b100100 t" +b101000 $" +b101000 =" +b10010 (" +b10010 M" +b10000100 i +b10000100 B" +b10000100 Y" +b101100 o +b101100 C" +b101100 S" +b10110000000010100110000011 p +b10110000000010100110000011 R" +b110100 Z +b110100 @" +b110100 X" +b110000 X +b110000 A" +b110000 P" +b110000 U" +b110000 W" +b100110 K +0H +1D +#1900 +0D +#1925 +b1010101010101010100010001000100 n +b1010101010101010100010001000100 v" +b1010101010101010100010001000100 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 2# +b110000 a +b110000 D" +b110000 l" +b110000 b +b110000 k" +b10100 W +b101100 v +b101100 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000011001100110011001000100010001000010001000100010000000000000000 /# +b101100 \ +b101100 6" +b101100 >" +b1000 &# +b110011001100110010001000100010 P +b110011001100110010001000100010 _" +b110011001100110010001000100010 d" +b110011001100110010001000100010 j" +b110011001100110010001000100010 o" +b11010000000010101010000011 ` +b11010000000010101010000011 Q" +b11010000000010101010000011 T" +b111000 Y +b111000 V" +b111000 Z" +b10010000 i +b10010000 B" +b10010000 Y" +b110000 o +b110000 C" +b110000 S" +b11000000000010101000000011 p +b11000000000010101000000011 R" +b101100 $" +b101100 =" +b10011 (" +b10011 M" +b10010 } +b10010 G" +b101000 y +b101000 [" +b101000 `" +b101000 t" +b10001 3" +b10001 J" +b10001 e" +b100100 0" +b100100 m" +b110011001100110010001000100010 1" +b110011001100110010001000100010 n" +b111000 Z +b111000 @" +b111000 X" +b110100 X +b110100 A" +b110100 P" +b110100 U" +b110100 W" +b100111 K +1D +#1950 +0D +#1975 +b1110111011101110110011001100110 n +b1110111011101110110011001100110 v" +b1110111011101110110011001100110 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100000000000000000000000000000000010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b110000 v +b110000 8" +b110100 a +b110100 D" +b110100 l" +b110100 b +b110100 k" +b10101 W +b1010101010101010100010001000100 P +b1010101010101010100010001000100 _" +b1010101010101010100010001000100 d" +b1010101010101010100010001000100 j" +b1010101010101010100010001000100 o" +b1100 &# +b110000 \ +b110000 6" +b110000 >" +b11100000000010101100000011 ` +b11100000000010101100000011 Q" +b11100000000010101100000011 T" +b111100 Y +b111100 V" +b111100 Z" +b10010 3" +b10010 J" +b10010 e" +b101000 0" +b101000 m" +b1010101010101010100010001000100 1" +b1010101010101010100010001000100 n" +b10011 } +b10011 G" +b101100 y +b101100 [" +b101100 `" +b101100 t" +b110000 $" +b110000 =" +b10100 (" +b10100 M" +b10011100 i +b10011100 B" +b10011100 Y" +b110100 o +b110100 C" +b110100 S" +b11010000000010101010000011 p +b11010000000010101010000011 R" +b111100 Z +b111100 @" +b111100 X" +b111000 X +b111000 A" +b111000 P" +b111000 U" +b111000 W" +b101000 K +1D +#2000 +0D +#2025 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b111000 a +b111000 D" +b111000 l" +b111000 b +b111000 k" +b10110 W +b110100 v +b110100 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111010000000000000000000000000000000001110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b110100 \ +b110100 6" +b110100 >" +b10000 &# +b1110111011101110110011001100110 P +b1110111011101110110011001100110 _" +b1110111011101110110011001100110 d" +b1110111011101110110011001100110 j" +b1110111011101110110011001100110 o" +b11110000000010101110000011 ` +b11110000000010101110000011 Q" +b11110000000010101110000011 T" +b1000000 Y +b1000000 V" +b1000000 Z" +b10101000 i +b10101000 B" +b10101000 Y" +b111000 o +b111000 C" +b111000 S" +b11100000000010101100000011 p +b11100000000010101100000011 R" +b110100 $" +b110100 =" +b10101 (" +b10101 M" +b10100 } +b10100 G" +b110000 y +b110000 [" +b110000 `" +b110000 t" +b10011 3" +b10011 J" +b10011 e" +b101100 0" +b101100 m" +b1110111011101110110011001100110 1" +b1110111011101110110011001100110 n" +b1000000 Z +b1000000 @" +b1000000 X" +b111100 X +b111100 A" +b111100 P" +b111100 U" +b111100 W" +b101001 K +1D +#2050 +0D +#2075 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000100010001000100110011001100110101010101010101011101110111011000000000000000000000000000000001110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b111000 v +b111000 8" +b111100 a +b111100 D" +b111100 l" +b111100 b +b111100 k" +b10111 W +b11101110111011101111111111111111 P +b11101110111011101111111111111111 _" +b11101110111011101111111111111111 d" +b11101110111011101111111111111111 j" +b11101110111011101111111111111111 o" +b10100 &# +b111000 \ +b111000 6" +b111000 >" +b100000000000010110000000011 ` +b100000000000010110000000011 Q" +b100000000000010110000000011 T" +b1000100 Y +b1000100 V" +b1000100 Z" +b10100 3" +b10100 J" +b10100 e" +b110000 0" +b110000 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10101 } +b10101 G" +b110100 y +b110100 [" +b110100 `" +b110100 t" +b111000 $" +b111000 =" +b10110 (" +b10110 M" +b10110100 i +b10110100 B" +b10110100 Y" +b111100 o +b111100 C" +b111100 S" +b11110000000010101110000011 p +b11110000000010101110000011 R" +b1000100 Z +b1000100 @" +b1000100 X" +b1000000 X +b1000000 A" +b1000000 P" +b1000000 U" +b1000000 W" +b101010 K +1D +#2100 +0D +#2125 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1000000 a +b1000000 D" +b1000000 l" +b1000000 b +b1000000 k" +b11000 W +b111100 v +b111100 8" +b1000100010001000100110011001100100000000000000000000000000000000110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b10 c +b111100 \ +b111100 6" +b111100 >" +b11000 &# +b11001100110011001101110111011101 P +b11001100110011001101110111011101 _" +b11001100110011001101110111011101 d" +b11001100110011001101110111011101 j" +b11001100110011001101110111011101 o" +b100010000000010110010000011 ` +b100010000000010110010000011 Q" +b100010000000010110010000011 T" +b1001000 Y +b1001000 V" +b1001000 Z" +b11000000 i +b11000000 B" +b11000000 Y" +b1000000 o +b1000000 C" +b1000000 S" +b100000000000010110000000011 p +b100000000000010110000000011 R" +b111100 $" +b111100 =" +b10111 (" +b10111 M" +b10110 } +b10110 G" +b111000 y +b111000 [" +b111000 `" +b111000 t" +b10101 3" +b10101 J" +b10101 e" +b110100 0" +b110100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b1001000 Z +b1001000 @" +b1001000 X" +b1000100 X +b1000100 A" +b1000100 P" +b1000100 U" +b1000100 W" +b101011 K +1D +#2150 +0D +#2175 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b10101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 /# +b1000000 v +b1000000 8" +b1000100 a +b1000100 D" +b1000100 l" +b1000100 b +b1000100 k" +b11001 W +b10101010101010101011101110111011 P +b10101010101010101011101110111011 _" +b10101010101010101011101110111011 d" +b10101010101010101011101110111011 j" +b10101010101010101011101110111011 o" +b11100 &# +b1000000 \ +b1000000 6" +b1000000 >" +b100100000000010110100000011 ` +b100100000000010110100000011 Q" +b100100000000010110100000011 T" +b1001100 Y +b1001100 V" +b1001100 Z" +b10110 3" +b10110 J" +b10110 e" +b111000 0" +b111000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b10111 } +b10111 G" +b111100 y +b111100 [" +b111100 `" +b111100 t" +b10 /" +b10 ;" +b1000000 $" +b1000000 =" +b11000 (" +b11000 M" +b11001100 i +b11001100 B" +b11001100 Y" +b1000100 o +b1000100 C" +b1000100 S" +b100010000000010110010000011 p +b100010000000010110010000011 R" +b1001100 Z +b1001100 @" +b1001100 X" +b1001000 X +b1001000 A" +b1001000 P" +b1001000 U" +b1001000 W" +b101100 K +1D +#2200 +0D +#2225 +b0 n +b0 v" +b0 +# +1e +0$# +b10 @# +b10 6# +b10 <# +0{" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 2# +b1001000 a +b1001000 D" +b1001000 l" +b1001000 b +b1001000 k" +b11010 W +b1000100 v +b1000100 8" +b1000000 C +b1000000 _ +b1000000 ## +b1000000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b0 /# +b1000100 \ +b1000100 6" +b1000100 >" +b0 :# +b10 r" +b10 1# +b10 '# +b0 &# +b10001000100010001001100110011001 P +b10001000100010001001100110011001 _" +b10001000100010001001100110011001 d" +b10001000100010001001100110011001 j" +b10001000100010001001100110011001 o" +b100110000000010110110000011 ` +b100110000000010110110000011 Q" +b100110000000010110110000011 T" +b1010000 Y +b1010000 V" +b1010000 Z" +b11011000 i +b11011000 B" +b11011000 Y" +b1001000 o +b1001000 C" +b1001000 S" +b100100000000010110100000011 p +b100100000000010110100000011 R" +b1000100 $" +b1000100 =" +b11001 (" +b11001 M" +b11000 } +b11000 G" +b1000000 y +b1000000 [" +b1000000 `" +b1000000 t" +b10111 3" +b10111 J" +b10111 e" +b111100 0" +b111100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b1010000 Z +b1010000 @" +b1010000 X" +b1001100 X +b1001100 A" +b1001100 P" +b1001100 U" +b1001100 W" +b101101 K +1D +#2250 +0D +#2275 +b100 .# +b101110 K +1H +1D +#2300 +0D +#2325 +b1 .# +1A +1,# +b101111 K +1D +#2350 +0D +#2375 +b1 A# +b1 C# +b110000 K +1D +#2400 +0D +#2425 +b10 A# +b110001 K +1D +#2450 +0D +#2475 +b11 A# +b110010 K +1D +#2500 +0D +#2525 +b100 A# +b110011 K +1D +#2550 +0D +#2575 +b101 A# +b110100 K +1D +#2600 +0D +#2625 +b110 A# +b110101 K +1D +#2650 +0D +#2675 +b111 A# +b110110 K +1D +#2700 +0D +#2725 +b1000 A# +b110111 K +1D +#2750 +0D +#2775 +1? +b1001 A# +b111000 K +1D +#2800 +0D +#2825 +0? +1s" +b0 A# +b0 C# +b10 .# +0A +0,# +1*# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 > +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ^ +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 "# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ?# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 B# +b111001 K +1D +#2850 +0D +#2875 +b11101100111110101110110011111010 n +b11101100111110101110110011111010 v" +b11101100111110101110110011111010 +# +0e +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 2# +1$# +b0 6# +b0 <# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000 /# +1{" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 y" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 B +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ] +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 x" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 ># +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 !# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +0s" +b1000000000000000000000000 :# +b0 .# +0*# +b111010 K +1D +#2900 +0D +#2925 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 2# +b1001100 a +b1001100 D" +b1001100 l" +b1001100 b +b1001100 k" +b11011 W +b1001000 v +b1001000 8" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010 /# +b1001000 \ +b1001000 6" +b1001000 >" +b100 &# +b11101100111110101110110011111010 P +b11101100111110101110110011111010 _" +b11101100111110101110110011111010 d" +b11101100111110101110110011111010 j" +b11101100111110101110110011111010 o" +b101000000000010111000000011 ` +b101000000000010111000000011 Q" +b101000000000010111000000011 T" +b1010100 Y +b1010100 V" +b1010100 Z" +b11100100 i +b11100100 B" +b11100100 Y" +b1001100 o +b1001100 C" +b1001100 S" +b100110000000010110110000011 p +b100110000000010110110000011 R" +b1001000 $" +b1001000 =" +b11010 (" +b11010 M" +b11001 } +b11001 G" +b1000100 y +b1000100 [" +b1000100 `" +b1000100 t" +b11000 3" +b11000 J" +b11000 e" +b1000000 0" +b1000000 m" +b11101100111110101110110011111010 1" +b11101100111110101110110011111010 n" +b1010100 Z +b1010100 @" +b1010100 X" +b1010000 X +b1010000 A" +b1010000 P" +b1010000 U" +b1010000 W" +b111011 K +0H +1D +#2950 +0D +#2975 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010 /# +b1001100 v +b1001100 8" +b1010000 a +b1010000 D" +b1010000 l" +b1010000 b +b1010000 k" +b11100 W +b1000 &# +b1001100 \ +b1001100 6" +b1001100 >" +b101010000000010111010000011 ` +b101010000000010111010000011 Q" +b101010000000010111010000011 T" +b1011000 Y +b1011000 V" +b1011000 Z" +b11001 3" +b11001 J" +b11001 e" +b1000100 0" +b1000100 m" +b11010 } +b11010 G" +b1001000 y +b1001000 [" +b1001000 `" +b1001000 t" +b1001100 $" +b1001100 =" +b11011 (" +b11011 M" +b11110000 i +b11110000 B" +b11110000 Y" +b1010000 o +b1010000 C" +b1010000 S" +b101000000000010111000000011 p +b101000000000010111000000011 R" +b1011000 Z +b1011000 @" +b1011000 X" +b1010100 X +b1010100 A" +b1010100 P" +b1010100 U" +b1010100 W" +b111100 K +1D +#3000 +0D +#3025 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1010100 a +b1010100 D" +b1010100 l" +b1010100 b +b1010100 k" +b11101 W +b1010000 v +b1010000 8" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1010000 \ +b1010000 6" +b1010000 >" +b1100 &# +b101100000000010111100000011 ` +b101100000000010111100000011 Q" +b101100000000010111100000011 T" +b1011100 Y +b1011100 V" +b1011100 Z" +b11111100 i +b11111100 B" +b11111100 Y" +b1010100 o +b1010100 C" +b1010100 S" +b101010000000010111010000011 p +b101010000000010111010000011 R" +b1010000 $" +b1010000 =" +b11100 (" +b11100 M" +b11011 } +b11011 G" +b1001100 y +b1001100 [" +b1001100 `" +b1001100 t" +b11010 3" +b11010 J" +b11010 e" +b1001000 0" +b1001000 m" +b1011100 Z +b1011100 @" +b1011100 X" +b1011000 X +b1011000 A" +b1011000 P" +b1011000 U" +b1011000 W" +b111101 K +1D +#3050 +0D +#3075 +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110100000000000000000000000000000000011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1010100 v +b1010100 8" +b1011000 a +b1011000 D" +b1011000 l" +b1011000 b +b1011000 k" +b11110 W +b10000 &# +b1010100 \ +b1010100 6" +b1010100 >" +b101110000000010111110000011 ` +b101110000000010111110000011 Q" +b101110000000010111110000011 T" +b1100000 Y +b1100000 V" +b1100000 Z" +b11011 3" +b11011 J" +b11011 e" +b1001100 0" +b1001100 m" +b11100 } +b11100 G" +b1010000 y +b1010000 [" +b1010000 `" +b1010000 t" +b1010100 $" +b1010100 =" +b11101 (" +b11101 M" +b100001000 i +b100001000 B" +b100001000 Y" +b1011000 o +b1011000 C" +b1011000 S" +b101100000000010111100000011 p +b101100000000010111100000011 R" +b1100000 Z +b1100000 @" +b1100000 X" +b1011100 X +b1011100 A" +b1011100 P" +b1011100 U" +b1011100 W" +b111110 K +1D +#3100 +0D +#3125 +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1011100 a +b1011100 D" +b1011100 l" +b1011100 b +b1011100 k" +b11111 W +b1011000 v +b1011000 8" +b1110110011111010111011001111101011101100111110101110110011111010000000000000000000000000000000001110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1011000 \ +b1011000 6" +b1011000 >" +b10100 &# +b1000000000000111010010011 ` +b1000000000000111010010011 Q" +b1000000000000111010010011 T" +b1100100 Y +b1100100 V" +b1100100 Z" +b100010100 i +b100010100 B" +b100010100 Y" +b1011100 o +b1011100 C" +b1011100 S" +b101110000000010111110000011 p +b101110000000010111110000011 R" +b1011000 $" +b1011000 =" +b11110 (" +b11110 M" +b11101 } +b11101 G" +b1010100 y +b1010100 [" +b1010100 `" +b1010100 t" +b11100 3" +b11100 J" +b11100 e" +b1010000 0" +b1010000 m" +b1100100 Z +b1100100 @" +b1100100 X" +b1100000 X +b1100000 A" +b1100000 P" +b1100000 U" +b1100000 W" +b111111 K +1D +#3150 +0D +#3175 +0m +0k +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110110011111010111011001111101000000000000000000000000000000000111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1011100 v +b1011100 8" +b11101 W +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b11000 &# +b1011100 \ +b1011100 6" +b1011100 >" +b0 c +b0 d +b10011 [ +b10011 E" +b11110111101000111100110011 ` +b11110111101000111100110011 Q" +b11110111101000111100110011 T" +b1101000 Y +b1101000 V" +b1101000 Z" +b11101 3" +b11101 J" +b11101 e" +b1010100 0" +b1010100 m" +b11110 } +b11110 G" +b1011000 y +b1011000 [" +b1011000 `" +b1011000 t" +b1011100 $" +b1011100 =" +b11111 (" +b11111 M" +b10000000 i +b10000000 B" +b10000000 Y" +b1100000 o +b1100000 C" +b1100000 S" +b1000000000000111010010011 p +b1000000000000111010010011 R" +b1101000 Z +b1101000 @" +b1101000 X" +b1100100 X +b1100100 A" +b1100100 P" +b1100100 U" +b1100100 W" +b1000000 K +1D +#3200 +0D +#3225 +b111101 a +b111101 D" +b111101 l" +b111101 b +b111101 k" +1g +0s +b11101100111110101110110011111010 Q +b11101100111110101110110011111010 h" +b10 t +b10 F" +b11101 S +b11101 O" +b11101 g" +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b11101100111110101110110011111010 T +b11101100111110101110110011111010 i" +b11110 W +b10000 v +b10000 8" +b11101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 /# +b1 c +b11101 V +b11101 N" +b11101 f" +b110011 [ +b110011 E" +b10000 \ +b10000 6" +b10000 >" +b11100 &# +b11110111110000111010110011 ` +b11110111110000111010110011 Q" +b11110111110000111010110011 T" +b1101100 Y +b1101100 V" +b1101100 Z" +b11011110 i +b11011110 B" +b11011110 Y" +b1100100 o +b1100100 C" +b1100100 S" +b11110111101000111100110011 p +b11110111101000111100110011 R" +0%" +0'" +b0 ." +b0 :" +b0 /" +b0 ;" +b10000 $" +b10000 =" +b11101 (" +b11101 M" +b11111 } +b11111 G" +b1011100 y +b1011100 [" +b1011100 `" +b1011100 t" +b11110 3" +b11110 J" +b11110 e" +b1011000 0" +b1011000 m" +b1101100 Z +b1101100 @" +b1101100 X" +b1101000 X +b1101000 A" +b1101000 P" +b1101000 U" +b1101000 W" +b1000001 K +1D +#3250 +0D +#3275 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b0 @# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 2# +b10 U +b10 L" +b10 ]" +b10 R +b10 K" +b10 b" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b100010001000100100010001000100011001100110011010001000100010001010101010101010000000000000000000000000000000010001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 /# +b100000000 v +b100000000 8" +b11101 W +0q" +0w" +b0 r" +b0 1# +b0 '# +b10000 &# +b10 u +b10 7" +b10 <" +b10000 \ +b10000 6" +b10000 >" +b10000 w +b10000 ?" +b10000 c" +b10000 x +b10000 5" +b10000 ^" +b11110 V +b11110 N" +b11110 f" +b1010101000000000111110010011 ` +b1010101000000000111110010011 Q" +b1010101000000000111110010011 T" +b1110000 Y +b1110000 V" +b1110000 Z" +b11111 3" +b11111 J" +b11111 e" +b1011100 0" +b1011100 m" +0z +0| +b11101 } +b11101 G" +b10000 y +b10000 [" +b10000 `" +b10000 t" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111101 $" +b111101 =" +b11101100111110101110110011111010 ," +b11101100111110101110110011111010 a" +b11101100111110101110110011111010 *" +b11101100111110101110110011111010 \" +b11101 +" +b11101 I" +b11101 )" +b11101 H" +b11110 (" +b11110 M" +b11100010 i +b11100010 B" +b11100010 Y" +b1101000 o +b1101000 C" +b1101000 S" +b11110111110000111010110011 p +b11110111110000111010110011 R" +b1110000 Z +b1110000 @" +b1110000 X" +b1101100 X +b1101100 A" +b1101100 P" +b1101100 U" +b1101100 W" +b1000010 K +1D +#3300 +0D +#3325 +b0 n +b0 v" +b0 +# +0$# +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b1000 @# +b10 6# +b10 <# +b1000000000000 v +b1000000000000 8" +b10000 \ +b10000 6" +b10000 >" +0{" +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b0 T +b0 i" +b11111 W +b1 R +b1 K" +b1 b" +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b100000000 x +b100000000 5" +b100000000 ^" +b10000 w +b10000 ?" +b10000 c" +b100000000 C +b100000000 _ +b100000000 ## +b100000000 =# +b0 ~" +b0 4# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101 c +b0 V +b0 N" +b0 f" +b10011 [ +b10011 E" +b10000 /# +b0 :# +b1000 r" +b1000 1# +b1000 '# +b0 &# +b10000 P +b10000 _" +b10000 d" +b10000 j" +b10000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b1110100 Y +b1110100 V" +b1110100 Z" +b111000000 i +b111000000 B" +b111000000 Y" +b1101100 o +b1101100 C" +b1101100 S" +b1010101000000000111110010011 p +b1010101000000000111110010011 R" +b11110 )" +b11110 H" +b11101 (" +b11101 M" +b11110 } +b11110 G" +b10000 !" +b10000 u" +b100000000 y +b100000000 [" +b100000000 `" +b100000000 t" +02" +b11101 3" +b11101 J" +b11101 e" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b1110100 Z +b1110100 @" +b1110100 X" +b1110000 X +b1110000 A" +b1110000 P" +b1110000 U" +b1110000 W" +b1000011 K +1D +#3350 +0D +#3375 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b10000000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b0 w +b0 ?" +b0 c" +b0 R +b0 K" +b0 b" +b11110 S +b11110 O" +b11110 g" +b0 x +b0 5" +b0 ^" +b1000000000000 C +b1000000000000 _ +b1000000000000 ## +b1000000000000 =# +b10101010 v +b10101010 8" +b0 U +b0 L" +b0 ]" +b11101100111110101110110011111010 T +b11101100111110101110110011111010 i" +b100000000 P +b100000000 _" +b100000000 d" +b100000000 j" +b100000000 o" +b1000000000000000000001000 (# +b1000000000000000000001000 3# +b1000000000000000000001000 9# +b1000 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b1 c +b11111 V +b11111 N" +b11111 f" +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b1111000 Y +b1111000 V" +b1111000 Z" +b11110 3" +b11110 J" +b11110 e" +b100000000 0" +b100000000 m" +b0 1" +b0 n" +b11101 } +b11101 G" +b1000000000000 y +b1000000000000 [" +b1000000000000 `" +b1000000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b0 *" +b0 \" +b0 +" +b0 I" +b0 )" +b0 H" +b11111 (" +b11111 M" +b11101100 i +b11101100 B" +b11101100 Y" +b1110000 o +b1110000 C" +b1110000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b1111000 Z +b1111000 @" +b1111000 X" +b1110100 X +b1110100 A" +b1110100 P" +b1110100 U" +b1110100 W" +b1000100 K +1D +#3400 +0D +#3425 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b101 @# +b0 S +b0 O" +b0 g" +b1010101000000000 v +b1010101000000000 8" +b10 U +b10 L" +b10 ]" +b10100000 C +b10100000 _ +b10100000 ## +b10100000 =# +b0 Q +b0 h" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b10101010 x +b10101010 5" +b10101010 ^" +b0 /# +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b1000000000000 P +b1000000000000 _" +b1000000000000 d" +b1000000000000 j" +b1000000000000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b1111100 Y +b1111100 V" +b1111100 Z" +b111001000 i +b111001000 B" +b111001000 Y" +b1110100 o +b1110100 C" +b1110100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b11101100111110101110110011111010 *" +b11101100111110101110110011111010 \" +b11110 +" +b11110 I" +b11111 )" +b11111 H" +b11111 } +b11111 G" +b0 !" +b0 u" +b10101010 y +b10101010 [" +b10101010 `" +b10101010 t" +b11101 3" +b11101 J" +b11101 e" +b1000000000000 0" +b1000000000000 m" +b1111100 Z +b1111100 @" +b1111100 X" +b1111000 X +b1111000 A" +b1111000 P" +b1111000 U" +b1111000 W" +b1000101 K +1D +#3450 +0D +#3475 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b10101010000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b10101010 T +b10101010 i" +b11110 S +b11110 O" +b11110 g" +b1010101000000000 x +b1010101000000000 5" +b1010101000000000 ^" +b1010101000000000 C +b1010101000000000 _ +b1010101000000000 ## +b1010101000000000 =# +b1010101010101010 v +b1010101010101010 8" +b10101010 P +b10101010 _" +b10101010 d" +b10101010 j" +b10101010 o" +b100000000 /# +b1000000000000000001010101 (# +b1000000000000000001010101 3# +b1000000000000000001010101 9# +b1010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b1 c +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b10000000 Y +b10000000 V" +b10000000 Z" +b11111 3" +b11111 J" +b11111 e" +b10101010 0" +b10101010 m" +b100000000 !" +b100000000 u" +b1010101000000000 y +b1010101000000000 [" +b1010101000000000 `" +b1010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b0 +" +b0 I" +b11110100 i +b11110100 B" +b11110100 Y" +b1111000 o +b1111000 C" +b1111000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b10000000 Z +b10000000 @" +b10000000 X" +b1111100 X +b1111100 A" +b1111100 P" +b1111100 U" +b1111100 W" +b1000110 K +1D +#3500 +0D +#3525 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b10101010101 @# +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b101010101010101000000000 v +b101010101010101000000000 8" +b1010101010101010 x +b1010101010101010 5" +b1010101010101010 ^" +b1010101010100000 C +b1010101010100000 _ +b1010101010100000 ## +b1010101010100000 =# +b1010101000000000 T +b1010101000000000 i" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b1010101000000000 P +b1010101000000000 _" +b1010101000000000 d" +b1010101000000000 j" +b1010101000000000 o" +b11111011111000111110110011 ` +b11111011111000111110110011 Q" +b11111011111000111110110011 T" +b10000100 Y +b10000100 V" +b10000100 Z" +b111010000 i +b111010000 B" +b111010000 Y" +b1111100 o +b1111100 C" +b1111100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b10101010 *" +b10101010 \" +b11110 +" +b11110 I" +b0 !" +b0 u" +b1010101010101010 y +b1010101010101010 [" +b1010101010101010 `" +b1010101010101010 t" +b1010101000000000 0" +b1010101000000000 m" +b10000100 Z +b10000100 @" +b10000100 X" +b10000000 X +b10000000 A" +b10000000 P" +b10000000 U" +b10000000 W" +b1000111 K +1D +#3550 +0D +#3575 +b111110 a +b111110 D" +b111110 l" +b111110 b +b111110 k" +1g +0s +b1010101010101010000 @# +b100000000 Q +b100000000 h" +b10 t +b10 F" +b11110 S +b11110 O" +b11110 g" +b1010101010101010 T +b1010101010101010 i" +b101010101010101000000000 x +b101010101010101000000000 5" +b101010101010101000000000 ^" +b101010101010101000000000 C +b101010101010101000000000 _ +b101010101010101000000000 ## +b101010101010101000000000 =# +b101010101010101010101010 v +b101010101010101010101010 8" +b1010101010101010 P +b1010101010101010 _" +b1010101010101010 d" +b1010101010101010 j" +b1010101010101010 o" +b100000000 /# +b1000000000101010101010101 (# +b1000000000101010101010101 3# +b1000000000101010101010101 9# +b101010101010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b1 c +b110011 [ +b110011 E" +b1010101011111000111110010011 ` +b1010101011111000111110010011 Q" +b1010101011111000111110010011 T" +b10001000 Y +b10001000 V" +b10001000 Z" +b1010101010101010 0" +b1010101010101010 m" +b100000000 !" +b100000000 u" +b101010101010101000000000 y +b101010101010101000000000 [" +b101010101010101000000000 `" +b101010101010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b1010101000000000 *" +b1010101000000000 \" +b0 +" +b0 I" +b11111100 i +b11111100 B" +b11111100 Y" +b10000000 o +b10000000 C" +b10000000 S" +b11111011111000111110110011 p +b11111011111000111110110011 R" +b10001000 Z +b10001000 @" +b10001000 X" +b10000100 X +b10000100 A" +b10000100 P" +b10000100 U" +b10000100 W" +b1001000 K +1D +#3600 +0D +#3625 +b10101010 a +b10101010 D" +b10101010 l" +b10101010 b +b10101010 k" +1s +b0 t +b0 F" +b1010101010101010101 @# +b0 Q +b0 h" +b0 S +b0 O" +b0 g" +b10101010101010101010101000000000 v +b10101010101010101010101000000000 8" +b101010101010101010101010 x +b101010101010101010101010 5" +b101010101010101010101010 ^" +b101010101010101010100000 C +b101010101010101010100000 _ +b101010101010101010100000 ## +b101010101010101010100000 =# +b101010101010101000000000 T +b101010101010101000000000 i" +b101 c +b10011 [ +b10011 E" +b10 u +b10 7" +b10 <" +b100000000 \ +b100000000 6" +b100000000 >" +b100000000 w +b100000000 ?" +b100000000 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b101010101010101000000000 P +b101010101010101000000000 _" +b101010101010101000000000 d" +b101010101010101000000000 j" +b101010101010101000000000 o" +b1111101000111010000110011 ` +b1111101000111010000110011 Q" +b1111101000111010000110011 T" +b10001100 Y +b10001100 V" +b10001100 Z" +b111011000 i +b111011000 B" +b111011000 Y" +b10000100 o +b10000100 C" +b10000100 S" +b1010101011111000111110010011 p +b1010101011111000111110010011 R" +0#" +b10 "" +b10 9" +b1 /" +b1 ;" +b111110 $" +b111110 =" +b100000000 ," +b100000000 a" +b1010101010101010 *" +b1010101010101010 \" +b11110 +" +b11110 I" +b0 !" +b0 u" +b101010101010101010101010 y +b101010101010101010101010 [" +b101010101010101010101010 `" +b101010101010101010101010 t" +b101010101010101000000000 0" +b101010101010101000000000 m" +b10001100 Z +b10001100 @" +b10001100 X" +b10001000 X +b10001000 A" +b10001000 P" +b10001000 U" +b10001000 W" +b1001001 K +1D +#3650 +0D +#3675 +b11111 a +b11111 D" +b11111 l" +b11111 b +b11111 k" +1g +0s +b101010101010101010101010000 @# +b101010101010101010101010 Q +b101010101010101010101010 h" +b10 t +b10 F" +b11111 S +b11111 O" +b11111 g" +b11101110111011101111111111111111 T +b11101110111011101111111111111111 i" +b10101010101010101010101000000000 x +b10101010101010101010101000000000 5" +b10101010101010101010101000000000 ^" +b10101010101010101010101000000000 C +b10101010101010101010101000000000 _ +b10101010101010101010101000000000 ## +b10101010101010101010101000000000 =# +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b1000 W +b101010101010101010101010 P +b101010101010101010101010 _" +b101010101010101010101010 d" +b101010101010101010101010 j" +b101010101010101010101010 o" +b100000000 /# +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b10101010 \ +b10101010 6" +b10101010 >" +b0 u +b0 7" +b0 <" +b0 w +b0 ?" +b0 c" +b0 c +b1000 V +b1000 N" +b1000 f" +b111 d +b110011 [ +b110011 E" +b1111101001111010010110011 ` +b1111101001111010010110011 Q" +b1111101001111010010110011 T" +b10010000 Y +b10010000 V" +b10010000 Z" +b101010101010101010101010 0" +b101010101010101010101010 m" +b100000000 !" +b100000000 u" +b10101010101010101010101000000000 y +b10101010101010101010101000000000 [" +b10101010101010101010101000000000 `" +b10101010101010101010101000000000 t" +1#" +b0 "" +b0 9" +b101 /" +b101 ;" +b10101010 $" +b10101010 =" +b0 ," +b0 a" +b101010101010101000000000 *" +b101010101010101000000000 \" +b0 +" +b0 I" +b11000110 i +b11000110 B" +b11000110 Y" +b10001000 o +b10001000 C" +b10001000 S" +b1111101000111010000110011 p +b1111101000111010000110011 R" +b10010000 Z +b10010000 @" +b10010000 X" +b10001100 X +b10001100 A" +b10001100 P" +b10001100 U" +b10001100 W" +b1001010 K +1D +#3700 +0D +#3725 +b101010101010101010101010101 @# +b11001100110011001101110111011101 T +b11001100110011001101110111011101 i" +b1001 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10 R +b10 K" +b10 b" +b0 U +b0 L" +b0 ]" +b11101110111011101111111111111111 x +b11101110111011101111111111111111 5" +b11101110111011101111111111111111 ^" +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b10101010101010101010101000000000 Q +b10101010101010101010101000000000 h" +b1001 V +b1001 N" +b1001 f" +b11 u +b11 7" +b11 <" +b10101010101010101010101010101010 \ +b10101010101010101010101010101010 6" +b10101010101010101010101010101010 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b0 /# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b10101010101010101010101000000000 P +b10101010101010101010101000000000 _" +b10101010101010101010101000000000 d" +b10101010101010101010101000000000 j" +b10101010101010101010101000000000 o" +b1111101010111010100110011 ` +b1111101010111010100110011 Q" +b1111101010111010100110011 T" +b10010100 Y +b10010100 V" +b10010100 Z" +b11001010 i +b11001010 B" +b11001010 Y" +b10001100 o +b10001100 C" +b10001100 S" +b1111101001111010010110011 p +b1111101001111010010110011 R" +0#" +b10 "" +b10 9" +b111 ." +b111 :" +b0 /" +b0 ;" +b11111 $" +b11111 =" +b101010101010101010101010 ," +b101010101010101010101010 a" +b11101110111011101111111111111111 *" +b11101110111011101111111111111111 \" +b11111 +" +b11111 I" +b1000 )" +b1000 H" +b1000 (" +b1000 M" +b0 !" +b0 u" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10101010101010101010101000000000 0" +b10101010101010101010101000000000 m" +b10010100 Z +b10010100 @" +b10010100 X" +b10010000 X +b10010000 A" +b10010000 P" +b10010000 U" +b10010000 W" +b1001011 K +1D +#3750 +0D +#3775 +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1 R +b1 K" +b1 b" +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b10101010101010101011101110111011 T +b10101010101010101011101110111011 i" +b1010 W +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b11001100110011001101110111011101 x +b11001100110011001101110111011101 5" +b11001100110011001101110111011101 ^" +b1010 V +b1010 N" +b1010 f" +b1111101011111010110110011 ` +b1111101011111010110110011 Q" +b1111101011111010110110011 T" +b10011000 Y +b10011000 V" +b10011000 Z" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b1000 } +b1000 G" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b10101010101010101010101000000000 ," +b10101010101010101010101000000000 a" +b11001100110011001101110111011101 *" +b11001100110011001101110111011101 \" +b1001 )" +b1001 H" +b1001 (" +b1001 M" +b11001110 i +b11001110 B" +b11001110 Y" +b10010000 o +b10010000 C" +b10010000 S" +b1111101010111010100110011 p +b1111101010111010100110011 R" +b10011000 Z +b10011000 @" +b10011000 X" +b10010100 X +b10010100 A" +b10010100 P" +b10010100 U" +b10010100 W" +b1001100 K +1D +#3800 +0D +#3825 +b100010001000100010001000100 @# +b0 R +b0 K" +b0 b" +b10001000100010001001100110011001 T +b10001000100010001001100110011001 i" +b1011 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b1011 V +b1011 N" +b1011 f" +b10101010101010101011101110111011 x +b10101010101010101011101110111011 5" +b10101010101010101011101110111011 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b1111101100111011000110011 ` +b1111101100111011000110011 Q" +b1111101100111011000110011 T" +b10011100 Y +b10011100 V" +b10011100 Z" +b11010010 i +b11010010 B" +b11010010 Y" +b10010100 o +b10010100 C" +b10010100 S" +b1111101011111010110110011 p +b1111101011111010110110011 R" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10101010101010101011101110111011 *" +b10101010101010101011101110111011 \" +b1010 )" +b1010 H" +b1010 (" +b1010 M" +b1001 } +b1001 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b1000 3" +b1000 J" +b1000 e" +b10011100 Z +b10011100 @" +b10011100 X" +b10011000 X +b10011000 A" +b10011000 P" +b10011000 U" +b10011000 W" +b1001101 K +1D +#3850 +0D +#3875 +b101010101010101010101010101 @# +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b1100110011001100111011101110111 T +b1100110011001100111011101110111 i" +b1100 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b101 r" +b101 1# +b101 '# +b1010 &# +b10001000100010001001100110011001 x +b10001000100010001001100110011001 5" +b10001000100010001001100110011001 ^" +b1100 V +b1100 N" +b1100 f" +b1111101101111011010110011 ` +b1111101101111011010110011 Q" +b1111101101111011010110011 T" +b10100000 Y +b10100000 V" +b10100000 Z" +b1001 3" +b1001 J" +b1001 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b1010 } +b1010 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10001000100010001001100110011001 *" +b10001000100010001001100110011001 \" +b1011 )" +b1011 H" +b1011 (" +b1011 M" +b11010110 i +b11010110 B" +b11010110 Y" +b10011000 o +b10011000 C" +b10011000 S" +b1111101100111011000110011 p +b1111101100111011000110011 R" +b10100000 Z +b10100000 @" +b10100000 X" +b10011100 X +b10011100 A" +b10011100 P" +b10011100 U" +b10011100 W" +b1001110 K +1D +#3900 +0D +#3925 +b100010001000100010001000100 @# +b1000100010001000101010101010101 T +b1000100010001000101010101010101 i" +b1101 W +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b1101 V +b1101 N" +b1101 f" +b1100110011001100111011101110111 x +b1100110011001100111011101110111 5" +b1100110011001100111011101110111 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b1111101110111011100110011 ` +b1111101110111011100110011 Q" +b1111101110111011100110011 T" +b10100100 Y +b10100100 V" +b10100100 Z" +b11011010 i +b11011010 B" +b11011010 Y" +b10011100 o +b10011100 C" +b10011100 S" +b1111101101111011010110011 p +b1111101101111011010110011 R" +b1100110011001100111011101110111 *" +b1100110011001100111011101110111 \" +b1100 )" +b1100 H" +b1100 (" +b1100 M" +b1011 } +b1011 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b1010 3" +b1010 J" +b1010 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b10100100 Z +b10100100 @" +b10100100 X" +b10100000 X +b10100000 A" +b10100000 P" +b10100000 U" +b10100000 W" +b1001111 K +1D +#3950 +0D +#3975 +b1000100010001000100010001 @# +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b101010101010101010101010101010100000000000000000 /# +b0 v +b0 8" +b100010001000100011001100110011 T +b100010001000100011001100110011 i" +b1110 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1000000000000000000000000 :# +b1 r" +b1 1# +b1 '# +b10 &# +b1000100010001000101010101010101 x +b1000100010001000101010101010101 5" +b1000100010001000101010101010101 ^" +b1110 V +b1110 N" +b1110 f" +b1111101111111011110110011 ` +b1111101111111011110110011 Q" +b1111101111111011110110011 T" +b10101000 Y +b10101000 V" +b10101000 Z" +b1011 3" +b1011 J" +b1011 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b1100 } +b1100 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b1000100010001000101010101010101 *" +b1000100010001000101010101010101 \" +b1101 )" +b1101 H" +b1101 (" +b1101 M" +b11011110 i +b11011110 B" +b11011110 Y" +b10100000 o +b10100000 C" +b10100000 S" +b1111101110111011100110011 p +b1111101110111011100110011 R" +b10101000 Z +b10101000 @" +b10101000 X" +b10100100 X +b10100100 A" +b10100100 P" +b10100100 U" +b10100100 W" +b1010000 K +1D +#4000 +0D +#4025 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b1000100010001 T +b1000100010001 i" +b1111 W +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b1111 V +b1111 N" +b1111 f" +b100010001000100011001100110011 x +b100010001000100011001100110011 5" +b100010001000100011001100110011 ^" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1111110000111100000110011 ` +b1111110000111100000110011 Q" +b1111110000111100000110011 T" +b10101100 Y +b10101100 V" +b10101100 Z" +b11100010 i +b11100010 B" +b11100010 Y" +b10100100 o +b10100100 C" +b10100100 S" +b1111101111111011110110011 p +b1111101111111011110110011 R" +b100010001000100011001100110011 *" +b100010001000100011001100110011 \" +b1110 )" +b1110 H" +b1110 (" +b1110 M" +b1101 } +b1101 G" +b0 y +b0 [" +b0 `" +b0 t" +b1100 3" +b1100 J" +b1100 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b10101100 Z +b10101100 @" +b10101100 X" +b10101000 X +b10101000 A" +b10101000 P" +b10101000 U" +b10101000 W" +b1010001 K +1D +#4050 +0D +#4075 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b0 v +b0 8" +b10001000100010000000000000000 T +b10001000100010000000000000000 i" +b10000 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b1000100010001 x +b1000100010001 5" +b1000100010001 ^" +b10000 V +b10000 N" +b10000 f" +b1111110001111100010110011 ` +b1111110001111100010110011 Q" +b1111110001111100010110011 T" +b10110000 Y +b10110000 V" +b10110000 Z" +b1101 3" +b1101 J" +b1101 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b1110 } +b1110 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b1000100010001 *" +b1000100010001 \" +b1111 )" +b1111 H" +b1111 (" +b1111 M" +b11100110 i +b11100110 B" +b11100110 Y" +b10101000 o +b10101000 C" +b10101000 S" +b1111110000111100000110011 p +b1111110000111100000110011 R" +b10110000 Z +b10110000 @" +b10110000 X" +b10101100 X +b10101100 A" +b10101100 P" +b10101100 U" +b10101100 W" +b1010010 K +1D +#4100 +0D +#4125 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b110011001100110010001000100010 T +b110011001100110010001000100010 i" +b10001 W +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b10001 V +b10001 N" +b10001 f" +b10001000100010000000000000000 x +b10001000100010000000000000000 5" +b10001000100010000000000000000 ^" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1111110010111100100110011 ` +b1111110010111100100110011 Q" +b1111110010111100100110011 T" +b10110100 Y +b10110100 V" +b10110100 Z" +b11101010 i +b11101010 B" +b11101010 Y" +b10101100 o +b10101100 C" +b10101100 S" +b1111110001111100010110011 p +b1111110001111100010110011 R" +b10001000100010000000000000000 *" +b10001000100010000000000000000 \" +b10000 )" +b10000 H" +b10000 (" +b10000 M" +b1111 } +b1111 G" +b0 y +b0 [" +b0 `" +b0 t" +b1110 3" +b1110 J" +b1110 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10110100 Z +b10110100 @" +b10110100 X" +b10110000 X +b10110000 A" +b10110000 P" +b10110000 U" +b10110000 W" +b1010011 K +1D +#4150 +0D +#4175 +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b1010101010101010100010001000100 T +b1010101010101010100010001000100 i" +b10010 W +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b110011001100110010001000100010 x +b110011001100110010001000100010 5" +b110011001100110010001000100010 ^" +b10010 V +b10010 N" +b10010 f" +b1111110011111100110110011 ` +b1111110011111100110110011 Q" +b1111110011111100110110011 T" +b10111000 Y +b10111000 V" +b10111000 Z" +b1111 3" +b1111 J" +b1111 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b10000 } +b10000 G" +b110011001100110010001000100010 *" +b110011001100110010001000100010 \" +b10001 )" +b10001 H" +b10001 (" +b10001 M" +b11101110 i +b11101110 B" +b11101110 Y" +b10110000 o +b10110000 C" +b10110000 S" +b1111110010111100100110011 p +b1111110010111100100110011 R" +b10111000 Z +b10111000 @" +b10111000 X" +b10110100 X +b10110100 A" +b10110100 P" +b10110100 U" +b10110100 W" +b1010100 K +1D +#4200 +0D +#4225 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b1110111011101110110011001100110 T +b1110111011101110110011001100110 i" +b10011 W +b0 v +b0 8" +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b10011 V +b10011 N" +b10011 f" +b1010101010101010100010001000100 x +b1010101010101010100010001000100 5" +b1010101010101010100010001000100 ^" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b1111110100111101000110011 ` +b1111110100111101000110011 Q" +b1111110100111101000110011 T" +b10111100 Y +b10111100 V" +b10111100 Z" +b11110010 i +b11110010 B" +b11110010 Y" +b10110100 o +b10110100 C" +b10110100 S" +b1111110011111100110110011 p +b1111110011111100110110011 R" +b1010101010101010100010001000100 *" +b1010101010101010100010001000100 \" +b10010 )" +b10010 H" +b10010 (" +b10010 M" +b10001 } +b10001 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b10000 3" +b10000 J" +b10000 e" +b10111100 Z +b10111100 @" +b10111100 X" +b10111000 X +b10111000 A" +b10111000 P" +b10111000 U" +b10111000 W" +b1010101 K +1D +#4250 +0D +#4275 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 6# +b0 <# +b0 @# +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b100010001000100010001000100010 v +b100010001000100010001000100010 8" +b11101110111011101111111111111111 T +b11101110111011101111111111111111 i" +b10100 W +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +b0 %# +b0 r" +b0 1# +b0 '# +b0 &# +b1110111011101110110011001100110 x +b1110111011101110110011001100110 5" +b1110111011101110110011001100110 ^" +b10100 V +b10100 N" +b10100 f" +b1111110101111101010110011 ` +b1111110101111101010110011 Q" +b1111110101111101010110011 T" +b11000000 Y +b11000000 V" +b11000000 Z" +b10001 3" +b10001 J" +b10001 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10010 } +b10010 G" +b0 y +b0 [" +b0 `" +b0 t" +b1110111011101110110011001100110 *" +b1110111011101110110011001100110 \" +b10011 )" +b10011 H" +b10011 (" +b10011 M" +b11110110 i +b11110110 B" +b11110110 Y" +b10111000 o +b10111000 C" +b10111000 S" +b1111110100111101000110011 p +b1111110100111101000110011 R" +b11000000 Z +b11000000 @" +b11000000 X" +b10111100 X +b10111100 A" +b10111100 P" +b10111100 U" +b10111100 W" +b1010110 K +1D +#4300 +0D +#4325 +b0 n +b0 v" +b0 +# +0{" +0$# +b0 ~" +b0 4# +b10 6# +b10 <# +b1000100010001000100010001 @# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 )# +b1110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010111011001111101011101100111110101110110011111010 2# +b11001100110011001101110111011101 T +b11001100110011001101110111011101 i" +b10101 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b100010001000100010001000100000 C +b100010001000100010001000100000 _ +b100010001000100010001000100000 ## +b100010001000100010001000100000 =# +b0 y" +b0 B +b0 ] +b0 x" +b0 ># +b0 !# +b0 5# +b101010101010101010101010101010100000000000000000 /# +b10101 V +b10101 N" +b10101 f" +b11101110111011101111111111111111 x +b11101110111011101111111111111111 5" +b11101110111011101111111111111111 ^" +b1000100010001000100010001 (# +b1000100010001000100010001 3# +b1000100010001000100010001 9# +b100010001000100010001 %# +b1 r" +b1 1# +b1 '# +b10 &# +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b1111110110111101100110011 ` +b1111110110111101100110011 Q" +b1111110110111101100110011 T" +b11000100 Y +b11000100 V" +b11000100 Z" +b11111010 i +b11111010 B" +b11111010 Y" +b10111100 o +b10111100 C" +b10111100 S" +b1111110101111101010110011 p +b1111110101111101010110011 R" +b11101110111011101111111111111111 *" +b11101110111011101111111111111111 \" +b10100 )" +b10100 H" +b10100 (" +b10100 M" +b10011 } +b10011 G" +b100010001000100010001000100010 y +b100010001000100010001000100010 [" +b100010001000100010001000100010 `" +b100010001000100010001000100010 t" +b10010 3" +b10010 J" +b10010 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b11000100 Z +b11000100 @" +b11000100 X" +b11000000 X +b11000000 A" +b11000000 P" +b11000000 U" +b11000000 W" +b1010111 K +1D +#4350 +0D +#4375 +b101010101010101010101010101 @# +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b10101010101010101011101110111011 T +b10101010101010101011101110111011 i" +b10110 W +b100010001000100010001000100010 P +b100010001000100010001000100010 _" +b100010001000100010001000100010 d" +b100010001000100010001000100010 j" +b100010001000100010001000100010 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b0 :# +b101 r" +b101 1# +b101 '# +b1010 &# +b11001100110011001101110111011101 x +b11001100110011001101110111011101 5" +b11001100110011001101110111011101 ^" +b10110 V +b10110 N" +b10110 f" +b1111110111111101110110011 ` +b1111110111111101110110011 Q" +b1111110111111101110110011 T" +b11001000 Y +b11001000 V" +b11001000 Z" +b10011 3" +b10011 J" +b10011 e" +b100010001000100010001000100010 0" +b100010001000100010001000100010 m" +b0 1" +b0 n" +b10100 } +b10100 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b11001100110011001101110111011101 *" +b11001100110011001101110111011101 \" +b10101 )" +b10101 H" +b10101 (" +b10101 M" +b11111110 i +b11111110 B" +b11111110 Y" +b11000000 o +b11000000 C" +b11000000 S" +b1111110110111101100110011 p +b1111110110111101100110011 R" +b11001000 Z +b11001000 @" +b11001000 X" +b11000100 X +b11000100 A" +b11000100 P" +b11000100 U" +b11000100 W" +b1011000 K +1D +#4400 +0D +#4425 +b100010001000100010001000100 @# +b10001000100010001001100110011001 T +b10001000100010001001100110011001 i" +b10111 W +b10101010101010101010101010101010 v +b10101010101010101010101010101010 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b10111 V +b10111 N" +b10111 f" +b10101010101010101011101110111011 x +b10101010101010101011101110111011 5" +b10101010101010101011101110111011 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b100000000010000000100011 ` +b100000000010000000100011 Q" +b100000000010000000100011 T" +b11001100 Y +b11001100 V" +b11001100 Z" +b100000010 i +b100000010 B" +b100000010 Y" +b11000100 o +b11000100 C" +b11000100 S" +b1111110111111101110110011 p +b1111110111111101110110011 R" +b10101010101010101011101110111011 *" +b10101010101010101011101110111011 \" +b10110 )" +b10110 H" +b10110 (" +b10110 M" +b10101 } +b10101 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b10100 3" +b10100 J" +b10100 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b11001100 Z +b11001100 @" +b11001100 X" +b11001000 X +b11001000 A" +b11001000 P" +b11001000 U" +b11001000 W" +b1011001 K +1D +#4450 +0D +#4475 +0g +1s +b101010101010101010101010101 @# +1l +b0 t +b0 F" +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b10101010101010101010101010100000 C +b10101010101010101010101010100000 _ +b10101010101010101010101010100000 ## +b10101010101010101010101010100000 =# +b1010101010101010101010101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000 /# +b10001000100010001000100010001000 v +b10001000100010001000100010001000 8" +b1000 S +b1000 O" +b1000 g" +b0 T +b0 i" +b0 W +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +b1010101010101010101010101 (# +b1010101010101010101010101 3# +b1010101010101010101010101 9# +b10101010101010101010101 %# +b101 r" +b101 1# +b101 '# +b1010 &# +b10001000100010001001100110011001 x +b10001000100010001001100110011001 5" +b10001000100010001001100110011001 ^" +b0 V +b0 N" +b0 f" +b10 d +b100011 [ +b100011 E" +b100100000010001000100011 ` +b100100000010001000100011 Q" +b100100000010001000100011 T" +b11010000 Y +b11010000 V" +b11010000 Z" +b10101 3" +b10101 J" +b10101 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +b10110 } +b10110 G" +b10101010101010101010101010101010 y +b10101010101010101010101010101010 [" +b10101010101010101010101010101010 `" +b10101010101010101010101010101010 t" +b10001000100010001001100110011001 *" +b10001000100010001001100110011001 \" +b10111 )" +b10111 H" +b10111 (" +b10111 M" +b11001000 i +b11001000 B" +b11001000 Y" +b11001000 o +b11001000 C" +b11001000 S" +b100000000010000000100011 p +b100000000010000000100011 R" +b11010000 Z +b11010000 @" +b11010000 X" +b11001100 X +b11001100 A" +b11001100 P" +b11001100 U" +b11001100 W" +b1011010 K +1D +#4500 +0D +#4525 +b100010001000100010001000100 @# +b100 a +b100 D" +b100 l" +b100 b +b100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b1001 S +b1001 O" +b1001 g" +b0 v +b0 8" +b10001000100010001000100010000000 C +b10001000100010001000100010000000 _ +b10001000100010001000100010000000 ## +b10001000100010001000100010000000 =# +b101010101010101010101010101010100000000000000000000000000000000000000000000000000000000000000000 /# +b0 \ +b0 6" +b0 >" +b0 u +b0 7" +b0 <" +b0 x +b0 5" +b0 ^" +b1010001000100010001000100 (# +b1010001000100010001000100 3# +b1010001000100010001000100 9# +b10001000100010001000100 %# +b100 r" +b100 1# +b100 '# +b1000 &# +b10101010101010101010101010101010 P +b10101010101010101010101010101010 _" +b10101010101010101010101010101010 d" +b10101010101010101010101010101010 j" +b10101010101010101010101010101010 o" +b101000000010010000100011 ` +b101000000010010000100011 Q" +b101000000010010000100011 T" +b11010100 Y +b11010100 V" +b11010100 Z" +b11010100 i +b11010100 B" +b11010100 Y" +b11001100 o +b11001100 C" +b11001100 S" +b100100000010001000100011 p +b100100000010001000100011 R" +1&" +0-" +1#" +b0 "" +b0 9" +b10 ." +b10 :" +b0 $" +b0 =" +b0 *" +b0 \" +b1000 +" +b1000 I" +b0 )" +b0 H" +b0 (" +b0 M" +b10111 } +b10111 G" +b10001000100010001000100010001000 y +b10001000100010001000100010001000 [" +b10001000100010001000100010001000 `" +b10001000100010001000100010001000 t" +b10110 3" +b10110 J" +b10110 e" +b10101010101010101010101010101010 0" +b10101010101010101010101010101010 m" +b11010100 Z +b11010100 @" +b11010100 X" +b11010000 X +b11010000 A" +b11010000 P" +b11010000 U" +b11010000 W" +b1011011 K +1D +#4550 +0D +#4575 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +1s" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 2# +1p" +1z" +1{" +1$# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110111101110111011101111111111111111 5# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b0 @# +b0 6# +b0 <# +b1000 a +b1000 D" +b1000 l" +b1000 b +b1000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +0e +b0 U +b0 L" +b0 ]" +b0 C +b0 _ +b0 ## +b0 =# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 /# +b100 v +b100 8" +b1010 S +b1010 O" +b1010 g" +b10001000100010001000100010001000 P +b10001000100010001000100010001000 _" +b10001000100010001000100010001000 d" +b10001000100010001000100010001000 j" +b10001000100010001000100010001000 o" +1q" +1w" +b1100000000000000000000000 (# +b1100000000000000000000000 3# +b1100000000000000000000000 9# +b0 %# +b1000000000000000000000000 :# +b0 r" +b0 1# +b0 '# +b0 &# +b100 \ +b100 6" +b100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b101100000010011000100011 ` +b101100000010011000100011 Q" +b101100000010011000100011 T" +b11011000 Y +b11011000 V" +b11011000 Z" +b10111 3" +b10111 J" +b10111 e" +b10001000100010001000100010001000 0" +b10001000100010001000100010001000 m" +1{ +0~ +b0 } +b0 G" +b0 y +b0 [" +b0 `" +b0 t" +b100 $" +b100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b1001 +" +b1001 I" +b11100000 i +b11100000 B" +b11100000 Y" +b11010000 o +b11010000 C" +b11010000 S" +b101000000010010000100011 p +b101000000010010000100011 R" +b11011000 Z +b11011000 @" +b11011000 X" +b11010100 X +b11010100 A" +b11010100 P" +b11010100 U" +b11010100 W" +b1011100 K +1D +#4600 +0D +#4625 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b1100 a +b1100 D" +b1100 l" +b1100 b +b1100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b0 U +b0 L" +b0 ]" +b1011 S +b1011 O" +b1011 g" +b1000 v +b1000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 2# +1}" +b1000 \ +b1000 6" +b1000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 /# +b100 &# +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111100110011001100110111011101110110101010101010101010101010101010 5# +b1100000000000000000000000 ~" +b1100000000000000000000000 4# +b110000000010100000100011 ` +b110000000010100000100011 Q" +b110000000010100000100011 T" +b11011100 Y +b11011100 V" +b11011100 Z" +b11101100 i +b11101100 B" +b11101100 Y" +b11010100 o +b11010100 C" +b11010100 S" +b101100000010011000100011 p +b101100000010011000100011 R" +b1000 $" +b1000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b1010 +" +b1010 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b100 y +b100 [" +b100 `" +b100 t" +04" +b0 3" +b0 J" +b0 e" +b0 0" +b0 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b1100000000000000000000000 :# +b11011100 Z +b11011100 @" +b11011100 X" +b11011000 X +b11011000 A" +b11011000 P" +b11011000 U" +b11011000 W" +b1011101 K +1D +#4650 +0D +#4675 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +b10000 a +b10000 D" +b10000 l" +b10000 b +b10000 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b1100 v +b1100 8" +b1100 S +b1100 O" +b1100 g" +b100 P +b100 _" +b100 d" +b100 j" +b100 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b1000 &# +b1100 \ +b1100 6" +b1100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b110100000010101000100011 ` +b110100000010101000100011 Q" +b110100000010101000100011 T" +b11100000 Y +b11100000 V" +b11100000 Z" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010111011101110111000100010001000100010001000100010101010101010101010101010101010 5# +b100 0" +b100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b1000 y +b1000 [" +b1000 `" +b1000 t" +b1100 $" +b1100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b1011 +" +b1011 I" +b11111000 i +b11111000 B" +b11111000 Y" +b11011000 o +b11011000 C" +b11011000 S" +b110000000010100000100011 p +b110000000010100000100011 R" +b11100000 Z +b11100000 @" +b11100000 X" +b11011100 X +b11011100 A" +b11011100 P" +b11011100 U" +b11011100 W" +b1011110 K +1D +#4700 +0D +#4725 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b10100 a +b10100 D" +b10100 l" +b10100 b +b10100 k" +b0 Q +b0 h" +b1101 S +b1101 O" +b1101 g" +b10000 v +b10000 8" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b10000 \ +b10000 6" +b10000 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b1100 &# +b1000 P +b1000 _" +b1000 d" +b1000 j" +b1000 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001001100110011001101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b111000000010110000100011 ` +b111000000010110000100011 Q" +b111000000010110000100011 T" +b11100100 Y +b11100100 V" +b11100100 Z" +b100000100 i +b100000100 B" +b100000100 Y" +b11011100 o +b11011100 C" +b11011100 S" +b110100000010101000100011 p +b110100000010101000100011 R" +b10000 $" +b10000 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b1100 +" +b1100 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b1100 y +b1100 [" +b1100 `" +b1100 t" +b1000 0" +b1000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b11100100 Z +b11100100 @" +b11100100 X" +b11100000 X +b11100000 A" +b11100000 P" +b11100000 U" +b11100000 W" +b1011111 K +1D +#4750 +0D +#4775 +b1100110011001100111011101110111 n +b1100110011001100111011101110111 v" +b1100110011001100111011101110111 +# +b11000 a +b11000 D" +b11000 l" +b11000 b +b11000 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b10100 v +b10100 8" +b1110 S +b1110 O" +b1110 g" +b1100 P +b1100 _" +b1100 d" +b1100 j" +b1100 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b10000 &# +b10100 \ +b10100 6" +b10100 >" +b0 w +b0 ?" +b0 c" +b111100000010111000100011 ` +b111100000010111000100011 Q" +b111100000010111000100011 T" +b11101000 Y +b11101000 V" +b11101000 Z" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010110011001100110011101110111011110001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b1100 0" +b1100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b10000 y +b10000 [" +b10000 `" +b10000 t" +b10100 $" +b10100 =" +b0 ," +b0 a" +b1101 +" +b1101 I" +b100010000 i +b100010000 B" +b100010000 Y" +b11100000 o +b11100000 C" +b11100000 S" +b111000000010110000100011 p +b111000000010110000100011 R" +b11101000 Z +b11101000 @" +b11101000 X" +b11100100 X +b11100100 A" +b11100100 P" +b11100100 U" +b11100100 W" +b1100000 K +1D +#4800 +0D +#4825 +b1000100010001000101010101010101 n +b1000100010001000101010101010101 v" +b1000100010001000101010101010101 +# +b11100 a +b11100 D" +b11100 l" +b11100 b +b11100 k" +b0 Q +b0 h" +b1111 S +b1111 O" +b1111 g" +b11000 v +b11000 8" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b11000 \ +b11000 6" +b11000 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b10100 &# +b10000 P +b10000 _" +b10000 d" +b10000 j" +b10000 o" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011010001000100010001010101010101010010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b11000000000010000000100011 ` +b11000000000010000000100011 Q" +b11000000000010000000100011 T" +b11101100 Y +b11101100 V" +b11101100 Z" +b100011100 i +b100011100 B" +b100011100 Y" +b11100100 o +b11100100 C" +b11100100 S" +b111100000010111000100011 p +b111100000010111000100011 R" +b11000 $" +b11000 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b1110 +" +b1110 I" +b0 !" +b0 u" +b10100 y +b10100 [" +b10100 `" +b10100 t" +b10000 0" +b10000 m" +b1100110011001100111011101110111 1" +b1100110011001100111011101110111 n" +b11101100 Z +b11101100 @" +b11101100 X" +b11101000 X +b11101000 A" +b11101000 P" +b11101000 U" +b11101000 W" +b1100001 K +1D +#4850 +0D +#4875 +b100010001000100011001100110011 n +b100010001000100011001100110011 v" +b100010001000100011001100110011 +# +b100000 a +b100000 D" +b100000 l" +b100000 b +b100000 k" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b11100 v +b11100 8" +b10000 S +b10000 O" +b10000 g" +b10100 P +b10100 _" +b10100 d" +b10100 j" +b10100 o" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b11000 &# +b11100 \ +b11100 6" +b11100 >" +b0 w +b0 ?" +b0 c" +b1 c +b11000100000010001000100011 ` +b11000100000010001000100011 Q" +b11000100000010001000100011 T" +b11110000 Y +b11110000 V" +b11110000 Z" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100011001100110011000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b10100 0" +b10100 m" +b1000100010001000101010101010101 1" +b1000100010001000101010101010101 n" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b11000 y +b11000 [" +b11000 `" +b11000 t" +b11100 $" +b11100 =" +b0 ," +b0 a" +b1111 +" +b1111 I" +b100101000 i +b100101000 B" +b100101000 Y" +b11101000 o +b11101000 C" +b11101000 S" +b11000000000010000000100011 p +b11000000000010000000100011 R" +b11110000 Z +b11110000 @" +b11110000 X" +b11101100 X +b11101100 A" +b11101100 P" +b11101100 U" +b11101100 W" +b1100010 K +1D +#4900 +0D +#4925 +b1000100010001 n +b1000100010001 v" +b1000100010001 +# +b100100 a +b100100 D" +b100100 l" +b100100 b +b100100 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b10001 S +b10001 O" +b10001 g" +b100000 v +b100000 8" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 )# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 2# +b100000 \ +b100000 6" +b100000 >" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 /# +b11100 &# +b11000 P +b11000 _" +b11000 d" +b11000 j" +b11000 o" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b11001000000010010000100011 ` +b11001000000010010000100011 Q" +b11001000000010010000100011 T" +b11110100 Y +b11110100 V" +b11110100 Z" +b100110100 i +b100110100 B" +b100110100 Y" +b11101100 o +b11101100 C" +b11101100 S" +b11000100000010001000100011 p +b11000100000010001000100011 R" +b1 /" +b1 ;" +b100000 $" +b100000 =" +b10000 +" +b10000 I" +b0 !" +b0 u" +b11100 y +b11100 [" +b11100 `" +b11100 t" +b11000 0" +b11000 m" +b100010001000100011001100110011 1" +b100010001000100011001100110011 n" +b11110100 Z +b11110100 @" +b11110100 X" +b11110000 X +b11110000 A" +b11110000 P" +b11110000 U" +b11110000 W" +b1100011 K +1D +#4950 +0D +#4975 +b10001000100010000000000000000 n +b10001000100010000000000000000 v" +b10001000100010000000000000000 +# +b1 @# +0}" +b101000 a +b101000 D" +b101000 l" +b101000 b +b101000 k" +b0 Q +b0 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 2# +b100000 C +b100000 _ +b100000 ## +b100000 =# +b1000000000000000000000000 ~" +b1000000000000000000000000 4# +b100100 v +b100100 8" +b10010 S +b10010 O" +b10010 g" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 /# +b11100 P +b11100 _" +b11100 d" +b11100 j" +b11100 o" +b1000000000000000000000000 :# +b1 r" +b1 1# +b1 '# +b0 &# +b100100 \ +b100100 6" +b100100 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b11001100000010011000100011 ` +b11001100000010011000100011 Q" +b11001100000010011000100011 T" +b11111000 Y +b11111000 V" +b11111000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000010001000100010000000000000000 5# +b11100 0" +b11100 m" +b1000100010001 1" +b1000100010001 n" +b100000 y +b100000 [" +b100000 `" +b100000 t" +b100100 $" +b100100 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b10001 +" +b10001 I" +b101000000 i +b101000000 B" +b101000000 Y" +b11110000 o +b11110000 C" +b11110000 S" +b11001000000010010000100011 p +b11001000000010010000100011 R" +b11111000 Z +b11111000 @" +b11111000 X" +b11110100 X +b11110100 A" +b11110100 P" +b11110100 U" +b11110100 W" +b1100100 K +1D +#5000 +0D +#5025 +b110011001100110010001000100010 n +b110011001100110010001000100010 v" +b110011001100110010001000100010 +# +b101100 a +b101100 D" +b101100 l" +b101100 b +b101100 k" +b100010001000100010001000100010 Q +b100010001000100010001000100010 h" +b10011 S +b10011 O" +b10011 g" +b101000 v +b101000 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 2# +1}" +b101000 \ +b101000 6" +b101000 >" +b0 w +b0 ?" +b0 c" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 /# +b100 &# +b100000 P +b100000 _" +b100000 d" +b100000 j" +b100000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000011001100110011001000100010001000000000000000000000000000000000 5# +b1100000000000000000000000 ~" +b1100000000000000000000000 4# +b11010000000010100000100011 ` +b11010000000010100000100011 Q" +b11010000000010100000100011 T" +b11111100 Y +b11111100 V" +b11111100 Z" +b101001100 i +b101001100 B" +b101001100 Y" +b11110100 o +b11110100 C" +b11110100 S" +b11001100000010011000100011 p +b11001100000010011000100011 R" +b101000 $" +b101000 =" +b0 ," +b0 a" +b10010 +" +b10010 I" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b100100 y +b100100 [" +b100100 `" +b100100 t" +b100000 0" +b100000 m" +b10001000100010000000000000000 1" +b10001000100010000000000000000 n" +b1100000000000000000000000 :# +b11111100 Z +b11111100 @" +b11111100 X" +b11111000 X +b11111000 A" +b11111000 P" +b11111000 U" +b11111000 W" +b1100101 K +1D +#5050 +0D +#5075 +b1010101010101010100010001000100 n +b1010101010101010100010001000100 v" +b1010101010101010100010001000100 +# +b110000 a +b110000 D" +b110000 l" +b110000 b +b110000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b101100 v +b101100 8" +b10100 S +b10100 O" +b10100 g" +b100100 P +b100100 _" +b100100 d" +b100100 j" +b100100 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b1000 &# +b101100 \ +b101100 6" +b101100 >" +b100010001000100010001000100010 w +b100010001000100010001000100010 ?" +b100010001000100010001000100010 c" +b11010100000010101000100011 ` +b11010100000010101000100011 Q" +b11010100000010101000100011 T" +b100000000 Y +b100000000 V" +b100000000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110010101010101010101000100010001000010001000100010001000100010001000000000000000000000000000000000 5# +b100100 0" +b100100 m" +b110011001100110010001000100010 1" +b110011001100110010001000100010 n" +b0 !" +b0 u" +b101000 y +b101000 [" +b101000 `" +b101000 t" +b101100 $" +b101100 =" +b100010001000100010001000100010 ," +b100010001000100010001000100010 a" +b10011 +" +b10011 I" +b101011000 i +b101011000 B" +b101011000 Y" +b11111000 o +b11111000 C" +b11111000 S" +b11010000000010100000100011 p +b11010000000010100000100011 R" +b100000000 Z +b100000000 @" +b100000000 X" +b11111100 X +b11111100 A" +b11111100 P" +b11111100 U" +b11111100 W" +b1100110 K +1D +#5100 +0D +#5125 +b1110111011101110110011001100110 n +b1110111011101110110011001100110 v" +b1110111011101110110011001100110 +# +b110100 a +b110100 D" +b110100 l" +b110100 b +b110100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b10101 S +b10101 O" +b10101 g" +b110000 v +b110000 8" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b110000 \ +b110000 6" +b110000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b1100 &# +b101000 P +b101000 _" +b101000 d" +b101000 j" +b101000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111101110111011101110110011001100110000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b11011000000010110000100011 ` +b11011000000010110000100011 Q" +b11011000000010110000100011 T" +b100000100 Y +b100000100 V" +b100000100 Z" +b101100100 i +b101100100 B" +b101100100 Y" +b11111100 o +b11111100 C" +b11111100 S" +b11010100000010101000100011 p +b11010100000010101000100011 R" +b110000 $" +b110000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10100 +" +b10100 I" +b100010001000100010001000100010 !" +b100010001000100010001000100010 u" +b101100 y +b101100 [" +b101100 `" +b101100 t" +b101000 0" +b101000 m" +b1010101010101010100010001000100 1" +b1010101010101010100010001000100 n" +b100000100 Z +b100000100 @" +b100000100 X" +b100000000 X +b100000000 A" +b100000000 P" +b100000000 U" +b100000000 W" +b1100111 K +1D +#5150 +0D +#5175 +b11101110111011101111111111111111 n +b11101110111011101111111111111111 v" +b11101110111011101111111111111111 +# +b111000 a +b111000 D" +b111000 l" +b111000 b +b111000 k" +b10101010101010101010101010101010 Q +b10101010101010101010101010101010 h" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b110100 v +b110100 8" +b10110 S +b10110 O" +b10110 g" +b101100 P +b101100 _" +b101100 d" +b101100 j" +b101100 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b10000 &# +b110100 \ +b110100 6" +b110100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b11011100000010111000100011 ` +b11011100000010111000100011 Q" +b11011100000010111000100011 T" +b100001000 Y +b100001000 V" +b100001000 Z" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011110111011101110111111111111111100100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b101100 0" +b101100 m" +b1110111011101110110011001100110 1" +b1110111011101110110011001100110 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b110000 y +b110000 [" +b110000 `" +b110000 t" +b110100 $" +b110100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b10101 +" +b10101 I" +b101110000 i +b101110000 B" +b101110000 Y" +b100000000 o +b100000000 C" +b100000000 S" +b11011000000010110000100011 p +b11011000000010110000100011 R" +b100001000 Z +b100001000 @" +b100001000 X" +b100000100 X +b100000100 A" +b100000100 P" +b100000100 U" +b100000100 W" +b1101000 K +1D +#5200 +0D +#5225 +b11001100110011001101110111011101 n +b11001100110011001101110111011101 v" +b11001100110011001101110111011101 +# +b111100 a +b111100 D" +b111100 l" +b111100 b +b111100 k" +b10001000100010001000100010001000 Q +b10001000100010001000100010001000 h" +b10111 S +b10111 O" +b10111 g" +b111000 v +b111000 8" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b111000 \ +b111000 6" +b111000 >" +b10101010101010101010101010101010 w +b10101010101010101010101010101010 ?" +b10101010101010101010101010101010 c" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b10100 &# +b110000 P +b110000 _" +b110000 d" +b110000 j" +b110000 o" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011110011001100110011011101110111011010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b0 ` +b0 Q" +b0 T" +b100001100 Y +b100001100 V" +b100001100 Z" +b101111100 i +b101111100 B" +b101111100 Y" +b100000100 o +b100000100 C" +b100000100 S" +b11011100000010111000100011 p +b11011100000010111000100011 R" +b111000 $" +b111000 =" +b10101010101010101010101010101010 ," +b10101010101010101010101010101010 a" +b10110 +" +b10110 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b110100 y +b110100 [" +b110100 `" +b110100 t" +b110000 0" +b110000 m" +b11101110111011101111111111111111 1" +b11101110111011101111111111111111 n" +b100001100 Z +b100001100 @" +b100001100 X" +b100001000 X +b100001000 A" +b100001000 P" +b100001000 U" +b100001000 W" +b1101001 K +1D +#5250 +0D +#5275 +b10101010101010101011101110111011 n +b10101010101010101011101110111011 v" +b10101010101010101011101110111011 +# +0l +b0 Q +b0 h" +b0 a +b0 D" +b0 l" +b0 b +b0 k" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b111100 v +b111100 8" +b0 S +b0 O" +b0 g" +b110100 P +b110100 _" +b110100 d" +b110100 j" +b110100 o" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b11000 &# +b111100 \ +b111100 6" +b111100 >" +b10001000100010001000100010001000 w +b10001000100010001000100010001000 ?" +b10001000100010001000100010001000 c" +b0 c +b0 d +b0 [ +b0 E" +b100010000 Y +b100010000 V" +b100010000 Z" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101011101110111011100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b110100 0" +b110100 m" +b11001100110011001101110111011101 1" +b11001100110011001101110111011101 n" +b10101010101010101010101010101010 !" +b10101010101010101010101010101010 u" +b111000 y +b111000 [" +b111000 `" +b111000 t" +b111100 $" +b111100 =" +b10001000100010001000100010001000 ," +b10001000100010001000100010001000 a" +b10111 +" +b10111 I" +b0 i +b0 B" +b0 Y" +b0 o +b0 C" +b0 S" +b0 p +b0 R" +b100010000 Z +b100010000 @" +b100010000 X" +b100001100 X +b100001100 A" +b100001100 P" +b100001100 U" +b100001100 W" +b1101010 K +1D +#5300 +0D +#5325 +b10001000100010001001100110011001 n +b10001000100010001001100110011001 v" +b10001000100010001001100110011001 +# +b0 v +b0 8" +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 )# +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 2# +b0 \ +b0 6" +b0 >" +b0 w +b0 ?" +b0 c" +b1000100010001000100010001000100010101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 /# +b11100 &# +b111000 P +b111000 _" +b111000 d" +b111000 j" +b111000 o" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 y" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 B +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ] +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 x" +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 ># +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 !# +b1000100010001000100110011001100110101010101010101010101010101010100010001000100010001000100010001010101010101010101010101010101000100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001000000000000000000000000000000000 5# +b100010100 Y +b100010100 V" +b100010100 Z" +0&" +b0 ." +b0 :" +b0 /" +b0 ;" +b0 $" +b0 =" +b0 ," +b0 a" +b0 +" +b0 I" +b10001000100010001000100010001000 !" +b10001000100010001000100010001000 u" +b111100 y +b111100 [" +b111100 `" +b111100 t" +b111000 0" +b111000 m" +b10101010101010101011101110111011 1" +b10101010101010101011101110111011 n" +b100010100 Z +b100010100 @" +b100010100 X" +b100010000 X +b100010000 A" +b100010000 P" +b100010000 U" +b100010000 W" +b1101011 K +1D +#5350 +0D +#5375 +b10101010101010101010101010101010 n +b10101010101010101010101010101010 v" +b10101010101010101010101010101010 +# +b0 @# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 )# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 2# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100000000000000000000000000000000000 /# +0s" +b0 C +b0 _ +b0 ## +b0 =# +b111100 P +b111100 _" +b111100 d" +b111100 j" +b111100 o" +0q" +0w" +b1000000000000000000000000 (# +b1000000000000000000000000 3# +b1000000000000000000000000 9# +0p" +0z" +b0 r" +b0 1# +b0 '# +b0 &# +b100011000 Y +b100011000 V" +b100011000 Z" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 y" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 B +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ] +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 x" +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 ># +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 !# +b100010001000100010001000100010000000000000000000000000000000000010001000100010001000100010001010001000100010001000100010001000101010101010101010101010101010101000100010001000100010001000100010101010101010101010101010101010 5# +b111100 0" +b111100 m" +b10001000100010001001100110011001 1" +b10001000100010001001100110011001 n" +0{ +b0 !" +b0 u" +b0 y +b0 [" +b0 `" +b0 t" +b100011000 Z +b100011000 @" +b100011000 X" +b100010100 X +b100010100 A" +b100010100 P" +b100010100 U" +b100010100 W" +b1101100 K +1D +#5400 +0D +#5425 +b0 P +b0 _" +b0 d" +b0 j" +b0 o" +b100011100 Y +b100011100 V" +b100011100 Z" +b0 0" +b0 m" +b10101010101010101010101010101010 1" +b10101010101010101010101010101010 n" +b100011100 Z +b100011100 @" +b100011100 X" +b100011000 X +b100011000 A" +b100011000 P" +b100011000 U" +b100011000 W" +b1101101 K +1D +#5450 +0D +#5475 +b100100000 Y +b100100000 V" +b100100000 Z" +b100100000 Z +b100100000 @" +b100100000 X" +b100011100 X +b100011100 A" +b100011100 P" +b100011100 U" +b100011100 W" +b1101110 K +1D +#5500 +0D +#5525 +b100100100 Y +b100100100 V" +b100100100 Z" +b100100100 Z +b100100100 @" +b100100100 X" +b100100000 X +b100100000 A" +b100100000 P" +b100100000 U" +b100100000 W" +b1101111 K +1D +#5550 +0D +#5575 +b100101000 Y +b100101000 V" +b100101000 Z" +b100101000 Z +b100101000 @" +b100101000 X" +b100100100 X +b100100100 A" +b100100100 P" +b100100100 U" +b100100100 W" +b1110000 K +1D +#5600 +0D +#5625 +b100101100 Y +b100101100 V" +b100101100 Z" +b100101100 Z +b100101100 @" +b100101100 X" +b100101000 X +b100101000 A" +b100101000 P" +b100101000 U" +b100101000 W" +b1110001 K +1D +#5650 +0D +#5675 +b100110000 Y +b100110000 V" +b100110000 Z" +b100110000 Z +b100110000 @" +b100110000 X" +b100101100 X +b100101100 A" +b100101100 P" +b100101100 U" +b100101100 W" +b1110010 K +1D +#5700 +0D +#5725 +b100110100 Y +b100110100 V" +b100110100 Z" +b100110100 Z +b100110100 @" +b100110100 X" +b100110000 X +b100110000 A" +b100110000 P" +b100110000 U" +b100110000 W" +b1110011 K +1D +#5750 +0D +#5775 +b100111000 Y +b100111000 V" +b100111000 Z" +b100111000 Z +b100111000 @" +b100111000 X" +b100110100 X +b100110100 A" +b100110100 P" +b100110100 U" +b100110100 W" +b1110100 K +1D +#5800 +0D +#5825 +b100111100 Y +b100111100 V" +b100111100 Z" +b100111100 Z +b100111100 @" +b100111100 X" +b100111000 X +b100111000 A" +b100111000 P" +b100111000 U" +b100111000 W" +b1110101 K +1D +#5850 +0D +#5875 +b101000000 Y +b101000000 V" +b101000000 Z" +b101000000 Z +b101000000 @" +b101000000 X" +b100111100 X +b100111100 A" +b100111100 P" +b100111100 U" +b100111100 W" +b1110110 K +1D +#5900 +0D +#5925 +b101000100 Y +b101000100 V" +b101000100 Z" +b101000100 Z +b101000100 @" +b101000100 X" +b101000000 X +b101000000 A" +b101000000 P" +b101000000 U" +b101000000 W" +b1110111 K +1D +#5950 +0D +#5975 +b101001000 Y +b101001000 V" +b101001000 Z" +b101001000 Z +b101001000 @" +b101001000 X" +b101000100 X +b101000100 A" +b101000100 P" +b101000100 U" +b101000100 W" +b1111000 K +1D +#6000 +0D +#6025 +b101001100 Y +b101001100 V" +b101001100 Z" +b101001100 Z +b101001100 @" +b101001100 X" +b101001000 X +b101001000 A" +b101001000 P" +b101001000 U" +b101001000 W" +b1111001 K +1D +#6050 +0D +#6075 +b101010000 Y +b101010000 V" +b101010000 Z" +b101010000 Z +b101010000 @" +b101010000 X" +b101001100 X +b101001100 A" +b101001100 P" +b101001100 U" +b101001100 W" +b1111010 K +1D +#6100 +0D +#6125 +b101010100 Y +b101010100 V" +b101010100 Z" +b101010100 Z +b101010100 @" +b101010100 X" +b101010000 X +b101010000 A" +b101010000 P" +b101010000 U" +b101010000 W" +b1111011 K +1D +#6150 +0D +#6175 +b101011000 Y +b101011000 V" +b101011000 Z" +b101011000 Z +b101011000 @" +b101011000 X" +b101010100 X +b101010100 A" +b101010100 P" +b101010100 U" +b101010100 W" +b1111100 K +1D +#6200 +0D +#6225 +b101011100 Y +b101011100 V" +b101011100 Z" +b101011100 Z +b101011100 @" +b101011100 X" +b101011000 X +b101011000 A" +b101011000 P" +b101011000 U" +b101011000 W" +b1111101 K +1D +#6250 +0D +#6275 +b101100000 Y +b101100000 V" +b101100000 Z" +b101100000 Z +b101100000 @" +b101100000 X" +b101011100 X +b101011100 A" +b101011100 P" +b101011100 U" +b101011100 W" +b1111110 K +1D +#6300 +0D +#6325 +b101100100 Y +b101100100 V" +b101100100 Z" +b101100100 Z +b101100100 @" +b101100100 X" +b101100000 X +b101100000 A" +b101100000 P" +b101100000 U" +b101100000 W" +b1111111 K +1D +#6350 +0D +#6375 +b101101000 Y +b101101000 V" +b101101000 Z" +b101101000 Z +b101101000 @" +b101101000 X" +b101100100 X +b101100100 A" +b101100100 P" +b101100100 U" +b101100100 W" +b10000000 K +1D +#6400 +0D +#6425 +b101101100 Y +b101101100 V" +b101101100 Z" +b101101100 Z +b101101100 @" +b101101100 X" +b101101000 X +b101101000 A" +b101101000 P" +b101101000 U" +b101101000 W" +b10000001 K +1D +#6450 +0D +#6475 +b101110000 Y +b101110000 V" +b101110000 Z" +b101110000 Z +b101110000 @" +b101110000 X" +b101101100 X +b101101100 A" +b101101100 P" +b101101100 U" +b101101100 W" +b10000010 K +1D +#6500 +0D +#6525 +b101110100 Y +b101110100 V" +b101110100 Z" +b101110100 Z +b101110100 @" +b101110100 X" +b101110000 X +b101110000 A" +b101110000 P" +b101110000 U" +b101110000 W" +b10000011 K +1D +#6550 +0D +#6575 +b101111000 Y +b101111000 V" +b101111000 Z" +b101111000 Z +b101111000 @" +b101111000 X" +b101110100 X +b101110100 A" +b101110100 P" +b101110100 U" +b101110100 W" +b10000100 K +1D +#6600 +0D +#6625 +b101111100 Y +b101111100 V" +b101111100 Z" +b101111100 Z +b101111100 @" +b101111100 X" +b101111000 X +b101111000 A" +b101111000 P" +b101111000 U" +b101111000 W" +b10000101 K +1D +#6650 +0D +#6675 +b110000000 Y +b110000000 V" +b110000000 Z" +b110000000 Z +b110000000 @" +b110000000 X" +b101111100 X +b101111100 A" +b101111100 P" +b101111100 U" +b101111100 W" +b10000110 K +1D +#6700 +0D +#6725 +b110000100 Y +b110000100 V" +b110000100 Z" +b110000100 Z +b110000100 @" +b110000100 X" +b110000000 X +b110000000 A" +b110000000 P" +b110000000 U" +b110000000 W" +b10000111 K +1D +#6750 +0D +#6775 +b110001000 Y +b110001000 V" +b110001000 Z" +b110001000 Z +b110001000 @" +b110001000 X" +b110000100 X +b110000100 A" +b110000100 P" +b110000100 U" +b110000100 W" +b10001000 K +1D +#6800 +0D +#6825 +b110001100 Y +b110001100 V" +b110001100 Z" +b110001100 Z +b110001100 @" +b110001100 X" +b110001000 X +b110001000 A" +b110001000 P" +b110001000 U" +b110001000 W" +b10001001 K +1D +#6850 +0D +#6875 +b110010000 Y +b110010000 V" +b110010000 Z" +b110010000 Z +b110010000 @" +b110010000 X" +b110001100 X +b110001100 A" +b110001100 P" +b110001100 U" +b110001100 W" +b10001010 K +1D +#6900 +0D +#6925 +b110010100 Y +b110010100 V" +b110010100 Z" +b110010100 Z +b110010100 @" +b110010100 X" +b110010000 X +b110010000 A" +b110010000 P" +b110010000 U" +b110010000 W" +b10001011 K +1D +#6950 +0D +#6975 +b110011000 Y +b110011000 V" +b110011000 Z" +b110011000 Z +b110011000 @" +b110011000 X" +b110010100 X +b110010100 A" +b110010100 P" +b110010100 U" +b110010100 W" +b10001100 K +1D +#7000 +0D +#7025 +b110011100 Y +b110011100 V" +b110011100 Z" +b110011100 Z +b110011100 @" +b110011100 X" +b110011000 X +b110011000 A" +b110011000 P" +b110011000 U" +b110011000 W" +b10001101 K +1D +#7050 +0D +#7075 +b110100000 Y +b110100000 V" +b110100000 Z" +b110100000 Z +b110100000 @" +b110100000 X" +b110011100 X +b110011100 A" +b110011100 P" +b110011100 U" +b110011100 W" +b10001110 K +1D +#7100 +0D +#7125 +b110100100 Y +b110100100 V" +b110100100 Z" +b110100100 Z +b110100100 @" +b110100100 X" +b110100000 X +b110100000 A" +b110100000 P" +b110100000 U" +b110100000 W" +b10001111 K +1D +#7150 +0D +#7175 +b110101000 Y +b110101000 V" +b110101000 Z" +b110101000 Z +b110101000 @" +b110101000 X" +b110100100 X +b110100100 A" +b110100100 P" +b110100100 U" +b110100100 W" +b10010000 K +1D +#7200 +0D +#7225 +b110101100 Y +b110101100 V" +b110101100 Z" +b110101100 Z +b110101100 @" +b110101100 X" +b110101000 X +b110101000 A" +b110101000 P" +b110101000 U" +b110101000 W" +b10010001 K +1D +#7250 +0D +#7275 +b110110000 Y +b110110000 V" +b110110000 Z" +b110110000 Z +b110110000 @" +b110110000 X" +b110101100 X +b110101100 A" +b110101100 P" +b110101100 U" +b110101100 W" +b10010010 K +1D +#7300 +0D +#7325 +b110110100 Y +b110110100 V" +b110110100 Z" +b110110100 Z +b110110100 @" +b110110100 X" +b110110000 X +b110110000 A" +b110110000 P" +b110110000 U" +b110110000 W" +b10010011 K +1D +#7350 +0D +#7375 +b110111000 Y +b110111000 V" +b110111000 Z" +b110111000 Z +b110111000 @" +b110111000 X" +b110110100 X +b110110100 A" +b110110100 P" +b110110100 U" +b110110100 W" +b10010100 K +1D +#7400 +0D +#7425 +b110111100 Y +b110111100 V" +b110111100 Z" +b110111100 Z +b110111100 @" +b110111100 X" +b110111000 X +b110111000 A" +b110111000 P" +b110111000 U" +b110111000 W" +b10010101 K +1D +#7450 +0D +#7475 +b111000000 Y +b111000000 V" +b111000000 Z" +b111000000 Z +b111000000 @" +b111000000 X" +b110111100 X +b110111100 A" +b110111100 P" +b110111100 U" +b110111100 W" +b10010110 K +1D +#7500 +0D +#7525 +b111000100 Y +b111000100 V" +b111000100 Z" +b111000100 Z +b111000100 @" +b111000100 X" +b111000000 X +b111000000 A" +b111000000 P" +b111000000 U" +b111000000 W" +b10010111 K +1D +#7550 +0D +#7575 +b111001000 Y +b111001000 V" +b111001000 Z" +b111001000 Z +b111001000 @" +b111001000 X" +b111000100 X +b111000100 A" +b111000100 P" +b111000100 U" +b111000100 W" +b10011000 K +1D +#7600 +0D +#7625 +b111001100 Y +b111001100 V" +b111001100 Z" +b111001100 Z +b111001100 @" +b111001100 X" +b111001000 X +b111001000 A" +b111001000 P" +b111001000 U" +b111001000 W" +b10011001 K +1D +#7650 +0D +#7675 +b111010000 Y +b111010000 V" +b111010000 Z" +b111010000 Z +b111010000 @" +b111010000 X" +b111001100 X +b111001100 A" +b111001100 P" +b111001100 U" +b111001100 W" +b10011010 K +1D +#7700 +0D +#7725 +b111010100 Y +b111010100 V" +b111010100 Z" +b111010100 Z +b111010100 @" +b111010100 X" +b111010000 X +b111010000 A" +b111010000 P" +b111010000 U" +b111010000 W" +b10011011 K +1D +#7750 +0D +#7775 +b111011000 Y +b111011000 V" +b111011000 Z" +b111011000 Z +b111011000 @" +b111011000 X" +b111010100 X +b111010100 A" +b111010100 P" +b111010100 U" +b111010100 W" +b10011100 K +1D +#7800 +0D +#7825 +b111011100 Y +b111011100 V" +b111011100 Z" +b111011100 Z +b111011100 @" +b111011100 X" +b111011000 X +b111011000 A" +b111011000 P" +b111011000 U" +b111011000 W" +b10011101 K +1D +#7850 +0D +#7875 +b111100000 Y +b111100000 V" +b111100000 Z" +b111100000 Z +b111100000 @" +b111100000 X" +b111011100 X +b111011100 A" +b111011100 P" +b111011100 U" +b111011100 W" +b10011110 K +1D +#7900 +0D +#7925 +b111100100 Y +b111100100 V" +b111100100 Z" +b111100100 Z +b111100100 @" +b111100100 X" +b111100000 X +b111100000 A" +b111100000 P" +b111100000 U" +b111100000 W" +b10011111 K +1D +#7950 +0D +#7975 +b111101000 Y +b111101000 V" +b111101000 Z" +b111101000 Z +b111101000 @" +b111101000 X" +b111100100 X +b111100100 A" +b111100100 P" +b111100100 U" +b111100100 W" +b10100000 K +1D +#8000 +0D +#8025 +b111101100 Y +b111101100 V" +b111101100 Z" +b111101100 Z +b111101100 @" +b111101100 X" +b111101000 X +b111101000 A" +b111101000 P" +b111101000 U" +b111101000 W" +b10100001 K +1D +#8050 +0D +#8075 +b111110000 Y +b111110000 V" +b111110000 Z" +b111110000 Z +b111110000 @" +b111110000 X" +b111101100 X +b111101100 A" +b111101100 P" +b111101100 U" +b111101100 W" +b10100010 K +1D +#8100 +0D +#8125 +b111110100 Y +b111110100 V" +b111110100 Z" +b111110100 Z +b111110100 @" +b111110100 X" +b111110000 X +b111110000 A" +b111110000 P" +b111110000 U" +b111110000 W" +b10100011 K +1D +#8150 +0D +#8175 +b111111000 Y +b111111000 V" +b111111000 Z" +b111111000 Z +b111111000 @" +b111111000 X" +b111110100 X +b111110100 A" +b111110100 P" +b111110100 U" +b111110100 W" +b10100100 K +1D +#8200 +0D +#8225 +b111111100 Y +b111111100 V" +b111111100 Z" +b111111100 Z +b111111100 @" +b111111100 X" +b111111000 X +b111111000 A" +b111111000 P" +b111111000 U" +b111111000 W" +b10100101 K +1D +#8250 +0D +#8275 +b1000000000 Y +b1000000000 V" +b1000000000 Z" +b1000000000 Z +b1000000000 @" +b1000000000 X" +b111111100 X +b111111100 A" +b111111100 P" +b111111100 U" +b111111100 W" +b10100110 K +1D +#8300 +0D +#8325 +b1000000100 Y +b1000000100 V" +b1000000100 Z" +b1000000100 Z +b1000000100 @" +b1000000100 X" +b1000000000 X +b1000000000 A" +b1000000000 P" +b1000000000 U" +b1000000000 W" +b10100111 K +1D +#8350 +0D +#8375 +b1000001000 Y +b1000001000 V" +b1000001000 Z" +b1000001000 Z +b1000001000 @" +b1000001000 X" +b1000000100 X +b1000000100 A" +b1000000100 P" +b1000000100 U" +b1000000100 W" +b10101000 K +1D +#8400 +0D +#8425 +b1000001100 Y +b1000001100 V" +b1000001100 Z" +b1000001100 Z +b1000001100 @" +b1000001100 X" +b1000001000 X +b1000001000 A" +b1000001000 P" +b1000001000 U" +b1000001000 W" +b10101001 K +1D +#8450 +0D +#8475 +b1000010000 Y +b1000010000 V" +b1000010000 Z" +b1000010000 Z +b1000010000 @" +b1000010000 X" +b1000001100 X +b1000001100 A" +b1000001100 P" +b1000001100 U" +b1000001100 W" +b10101010 K +1D +#8500 +0D +#8525 +b1000010100 Y +b1000010100 V" +b1000010100 Z" +b1000010100 Z +b1000010100 @" +b1000010100 X" +b1000010000 X +b1000010000 A" +b1000010000 P" +b1000010000 U" +b1000010000 W" +b10101011 K +1D +#8550 +0D +#8575 +b1000011000 Y +b1000011000 V" +b1000011000 Z" +b1000011000 Z +b1000011000 @" +b1000011000 X" +b1000010100 X +b1000010100 A" +b1000010100 P" +b1000010100 U" +b1000010100 W" +b10101100 K +1D +#8600 +0D +#8625 +b1000011100 Y +b1000011100 V" +b1000011100 Z" +b1000011100 Z +b1000011100 @" +b1000011100 X" +b1000011000 X +b1000011000 A" +b1000011000 P" +b1000011000 U" +b1000011000 W" +b10101101 K +1D +#8650 +0D +#8675 +b1000100000 Y +b1000100000 V" +b1000100000 Z" +b1000100000 Z +b1000100000 @" +b1000100000 X" +b1000011100 X +b1000011100 A" +b1000011100 P" +b1000011100 U" +b1000011100 W" +b10101110 K +1D +#8700 +0D +#8725 +b1000100100 Y +b1000100100 V" +b1000100100 Z" +b1000100100 Z +b1000100100 @" +b1000100100 X" +b1000100000 X +b1000100000 A" +b1000100000 P" +b1000100000 U" +b1000100000 W" +b10101111 K +1D +#8750 +0D +#8775 +b1000101000 Y +b1000101000 V" +b1000101000 Z" +b1000101000 Z +b1000101000 @" +b1000101000 X" +b1000100100 X +b1000100100 A" +b1000100100 P" +b1000100100 U" +b1000100100 W" +b10110000 K +1D +#8800 +0D +#8825 +b1000101100 Y +b1000101100 V" +b1000101100 Z" +b1000101100 Z +b1000101100 @" +b1000101100 X" +b1000101000 X +b1000101000 A" +b1000101000 P" +b1000101000 U" +b1000101000 W" +b10110001 K +1D +#8850 +0D +#8875 +b1000110000 Y +b1000110000 V" +b1000110000 Z" +b1000110000 Z +b1000110000 @" +b1000110000 X" +b1000101100 X +b1000101100 A" +b1000101100 P" +b1000101100 U" +b1000101100 W" +b10110010 K +1D +#8900 +0D +#8925 +b1000110100 Y +b1000110100 V" +b1000110100 Z" +b1000110100 Z +b1000110100 @" +b1000110100 X" +b1000110000 X +b1000110000 A" +b1000110000 P" +b1000110000 U" +b1000110000 W" +b10110011 K +1D +#8950 +0D +#8975 +b1000111000 Y +b1000111000 V" +b1000111000 Z" +b1000111000 Z +b1000111000 @" +b1000111000 X" +b1000110100 X +b1000110100 A" +b1000110100 P" +b1000110100 U" +b1000110100 W" +b10110100 K +1D +#9000 +0D +#9025 +b1000111100 Y +b1000111100 V" +b1000111100 Z" +b1000111100 Z +b1000111100 @" +b1000111100 X" +b1000111000 X +b1000111000 A" +b1000111000 P" +b1000111000 U" +b1000111000 W" +b10110101 K +1D +#9050 +0D +#9075 +b1001000000 Y +b1001000000 V" +b1001000000 Z" +b1001000000 Z +b1001000000 @" +b1001000000 X" +b1000111100 X +b1000111100 A" +b1000111100 P" +b1000111100 U" +b1000111100 W" +b10110110 K +1D +#9100 +0D +#9125 +b1001000100 Y +b1001000100 V" +b1001000100 Z" +b1001000100 Z +b1001000100 @" +b1001000100 X" +b1001000000 X +b1001000000 A" +b1001000000 P" +b1001000000 U" +b1001000000 W" +b10110111 K +1D +#9150 +0D +#9175 +b1001001000 Y +b1001001000 V" +b1001001000 Z" +b1001001000 Z +b1001001000 @" +b1001001000 X" +b1001000100 X +b1001000100 A" +b1001000100 P" +b1001000100 U" +b1001000100 W" +b10111000 K +1D +#9200 +0D +#9225 +b1001001100 Y +b1001001100 V" +b1001001100 Z" +b1001001100 Z +b1001001100 @" +b1001001100 X" +b1001001000 X +b1001001000 A" +b1001001000 P" +b1001001000 U" +b1001001000 W" +b10111001 K +1D +#9250 +0D +#9275 +b1001010000 Y +b1001010000 V" +b1001010000 Z" +b1001010000 Z +b1001010000 @" +b1001010000 X" +b1001001100 X +b1001001100 A" +b1001001100 P" +b1001001100 U" +b1001001100 W" +b10111010 K +1D +#9300 +0D +#9325 +b1001010100 Y +b1001010100 V" +b1001010100 Z" +b1001010100 Z +b1001010100 @" +b1001010100 X" +b1001010000 X +b1001010000 A" +b1001010000 P" +b1001010000 U" +b1001010000 W" +b10111011 K +1D +#9350 +0D +#9375 +b1001011000 Y +b1001011000 V" +b1001011000 Z" +b1001011000 Z +b1001011000 @" +b1001011000 X" +b1001010100 X +b1001010100 A" +b1001010100 P" +b1001010100 U" +b1001010100 W" +b10111100 K +1D +#9400 +0D +#9425 +b1001011100 Y +b1001011100 V" +b1001011100 Z" +b1001011100 Z +b1001011100 @" +b1001011100 X" +b1001011000 X +b1001011000 A" +b1001011000 P" +b1001011000 U" +b1001011000 W" +b10111101 K +1D +#9450 +0D +#9475 +b1001100000 Y +b1001100000 V" +b1001100000 Z" +b1001100000 Z +b1001100000 @" +b1001100000 X" +b1001011100 X +b1001011100 A" +b1001011100 P" +b1001011100 U" +b1001011100 W" +b10111110 K +1D +#9500 +0D +#9525 +b1001100100 Y +b1001100100 V" +b1001100100 Z" +b1001100100 Z +b1001100100 @" +b1001100100 X" +b1001100000 X +b1001100000 A" +b1001100000 P" +b1001100000 U" +b1001100000 W" +b10111111 K +1D +#9550 +0D +#9575 +b1001101000 Y +b1001101000 V" +b1001101000 Z" +b1001101000 Z +b1001101000 @" +b1001101000 X" +b1001100100 X +b1001100100 A" +b1001100100 P" +b1001100100 U" +b1001100100 W" +b11000000 K +1D +#9600 +0D +#9625 +b1001101100 Y +b1001101100 V" +b1001101100 Z" +b1001101100 Z +b1001101100 @" +b1001101100 X" +b1001101000 X +b1001101000 A" +b1001101000 P" +b1001101000 U" +b1001101000 W" +b11000001 K +1D +#9650 +0D +#9675 +b1001110000 Y +b1001110000 V" +b1001110000 Z" +b1001110000 Z +b1001110000 @" +b1001110000 X" +b1001101100 X +b1001101100 A" +b1001101100 P" +b1001101100 U" +b1001101100 W" +b11000010 K +1D +#9700 +0D +#9725 +b1001110100 Y +b1001110100 V" +b1001110100 Z" +b1001110100 Z +b1001110100 @" +b1001110100 X" +b1001110000 X +b1001110000 A" +b1001110000 P" +b1001110000 U" +b1001110000 W" +b11000011 K +1D +#9750 +0D +#9775 +b1001111000 Y +b1001111000 V" +b1001111000 Z" +b1001111000 Z +b1001111000 @" +b1001111000 X" +b1001110100 X +b1001110100 A" +b1001110100 P" +b1001110100 U" +b1001110100 W" +b11000100 K +1D +#9800 +0D +#9825 +b1001111100 Y +b1001111100 V" +b1001111100 Z" +b1001111100 Z +b1001111100 @" +b1001111100 X" +b1001111000 X +b1001111000 A" +b1001111000 P" +b1001111000 U" +b1001111000 W" +b11000101 K +1D +#9850 +0D +#9875 +b1010000000 Y +b1010000000 V" +b1010000000 Z" +b1010000000 Z +b1010000000 @" +b1010000000 X" +b1001111100 X +b1001111100 A" +b1001111100 P" +b1001111100 U" +b1001111100 W" +b11000110 K +1D +#9900 +0D +#9925 +b1010000100 Y +b1010000100 V" +b1010000100 Z" +b1010000100 Z +b1010000100 @" +b1010000100 X" +b1010000000 X +b1010000000 A" +b1010000000 P" +b1010000000 U" +b1010000000 W" +b11000111 K +1D +#9950 +0D +#9975 +b1010001000 Y +b1010001000 V" +b1010001000 Z" +b1010001000 Z +b1010001000 @" +b1010001000 X" +b1010000100 X +b1010000100 A" +b1010000100 P" +b1010000100 U" +b1010000100 W" +b11001000 K +1D +#10000 +0D +#10025 +b1010001100 Y +b1010001100 V" +b1010001100 Z" +b1010001100 Z +b1010001100 @" +b1010001100 X" +b1010001000 X +b1010001000 A" +b1010001000 P" +b1010001000 U" +b1010001000 W" +b11001001 K +b1111 G +b1111 I +b0 J +b10000 L +b10 M +1D +#10050 +0D +#10075 +b1010010000 Y +b1010010000 V" +b1010010000 Z" +b1010010000 Z +b1010010000 @" +b1010010000 X" +b1010001100 X +b1010001100 A" +b1010001100 P" +b1010001100 U" +b1010001100 W" +1D diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000..cec5163 Binary files /dev/null and b/public/icon.png differ diff --git a/public/index.html b/public/index.html index 3e5a139..3e29b75 100644 --- a/public/index.html +++ b/public/index.html @@ -1,17 +1,23 @@ - + + - - <%= htmlWebpackPlugin.options.title %> - - + + Vcd Viewer + + + + + +
- - - + + + \ No newline at end of file diff --git a/public/vcd.css b/public/vcd.css new file mode 100644 index 0000000..2e7c669 --- /dev/null +++ b/public/vcd.css @@ -0,0 +1,29 @@ +html, body { + background-color: var(--background); + color: var(--foreground); +} + +.vcd-sidebar { + position: absolute; + top: 10px; + left: 10px; + background-color: var(--sidebar); + border: solid 1px var(--sidebar-border); + min-width: var(--sidebar-min-width); +} + +.vcd-sidebar-item { + +} + +.vcd-toolbar { + +} + +.vcd-render { + +} + +.vcd-treeview { + +} \ No newline at end of file diff --git a/public/vcd.js b/public/vcd.js new file mode 100644 index 0000000..e1bb66b --- /dev/null +++ b/public/vcd.js @@ -0,0 +1,12 @@ +!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,(function(r){return o(e[i][1][r]||r)}),p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i>6],primitive=0==(32&tag);if(31==(31&tag)){let oct=tag;for(tag=0;128==(128&oct);){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=127&oct}}else tag&=31;return{cls:cls,primitive:primitive,tag:tag,tagStr:der.tag[tag]}}function derDecodeLen(buf,primitive,fail){let len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&128===len)return null;if(0==(128&len))return len;const num=127&len;if(num>4)return buf.error("length octect is too long");len=0;for(let i=0;i=31)return reporter.error("Multi-octet tag encoding unsupported");primitive||(res|=32);return res|=der.tagClassByName[cls||"universal"]<<6,res}(tag,primitive,cls,this.reporter);if(content.length<128){const header=Buffer.alloc(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}let lenOctets=1;for(let i=content.length;i>=256;i>>=8)lenOctets++;const header=Buffer.alloc(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(let i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=255&j;return this._createEncoderBuffer([header,content])},DERNode.prototype._encodeStr=function(str,tag){if("bitstr"===tag)return this._createEncoderBuffer([0|str.unused,str.data]);if("bmpstr"===tag){const buf=Buffer.alloc(2*str.length);for(let i=0;i=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,40*id[0]+id[1])}let size=0;for(let i=0;i=128;ident>>=7)size++}const objid=Buffer.alloc(size);let offset=objid.length-1;for(let i=id.length-1;i>=0;i--){let ident=id[i];for(objid[offset--]=127&ident;(ident>>=7)>0;)objid[offset--]=128|127&ident}return this._createEncoderBuffer(objid)},DERNode.prototype._encodeTime=function(time,tag){let str;const date=new Date(time);return"gentime"===tag?str=[two(date.getUTCFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):"utctime"===tag?str=[two(date.getUTCFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+tag+" time is not supported yet"),this._encodeStr(str,"octstr")},DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer("")},DERNode.prototype._encodeInt=function(num,values){if("string"==typeof num){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num));num=values[num]}if("number"!=typeof num&&!Buffer.isBuffer(num)){const numArray=num.toArray();!num.sign&&128&numArray[0]&&numArray.unshift(0),num=Buffer.from(numArray)}if(Buffer.isBuffer(num)){let size=num.length;0===num.length&&size++;const out=Buffer.alloc(size);return num.copy(out),0===num.length&&(out[0]=0),this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);let size=1;for(let i=num;i>=256;i>>=8)size++;const out=new Array(size);for(let i=out.length-1;i>=0;i--)out[i]=255&num,num>>=8;return 128&out[0]&&out.unshift(0),this._createEncoderBuffer(Buffer.from(out))},DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)},DERNode.prototype._use=function(entity,obj){return"function"==typeof entity&&(entity=entity(obj)),entity._getEncoder("der").tree},DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){const state=this._baseState;let i;if(null===state.default)return!1;const data=dataBuffer.join();if(void 0===state.defaultBuffer&&(state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join()),data.length!==state.defaultBuffer.length)return!1;for(i=0;i=65&&c<=70?c-55:c>=97&&c<=102?c-87:c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,len=Math.min(str.length,end),i=start;i=49?c-49+10:c>=17?c-17+10:c}return r}BN.isBN=function(num){return num instanceof BN||null!==num&&"object"==typeof num&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){return left.cmp(right)>0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&(start++,this.negative=1),start=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this.strip()},BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;else for(i=(number.length-start)%2==0?start+1:start;i=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;this.strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function(){return(this.red?""};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out.strip()}BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off&16777215)||i!==this.length-1?zeros[6-word.length]+word+out:word+out,(off+=2)>=26&&(off-=26,i--)}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(void 0!==Buffer),this.toArrayLike(Buffer,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0"),this.strip();var b,i,littleEndian="le"===endian,res=new ArrayType(reqLength),q=this.clone();if(littleEndian){for(i=0;!q.isZero();i++)b=q.andln(255),q.iushrn(8),res[i]=b;for(;i=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function jumboMulTo(self,num,out){return(new FFTM).mulp(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;return res=10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?function(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out.strip()}(this,num,out):jumboMulTo(this,num,out),res},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit>>wbit}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s)for(this.length-=s,i=0;i=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this.strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q.strip(),a.strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this.strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){ab&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:20}],17:[function(require,module,exports){"use strict";exports.byteLength=function(b64){var lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1];return 3*(validLen+placeHoldersLen)/4-placeHoldersLen},exports.toByteArray=function(b64){var tmp,i,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Arr(function(b64,validLen,placeHoldersLen){return 3*(validLen+placeHoldersLen)/4-placeHoldersLen}(0,validLen,placeHoldersLen)),curByte=0,len=placeHoldersLen>0?validLen-4:validLen;for(i=0;i>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp;2===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4,arr[curByte++]=255&tmp);1===placeHoldersLen&&(tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=255&tmp);return arr},exports.fromByteArray=function(uint8){for(var tmp,len=uint8.length,extraBytes=len%3,parts=[],i=0,len2=len-extraBytes;ilen2?len2:i+16383));1===extraBytes?(tmp=uint8[len-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+"==")):2===extraBytes&&(tmp=(uint8[len-2]<<8)+uint8[len-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+"="));return parts.join("")};for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0;i<64;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;function getLens(b64){var len=b64.length;if(len%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var validLen=b64.indexOf("=");return-1===validLen&&(validLen=len),[validLen,validLen===len?0:4-validLen%4]}function encodeChunk(uint8,start,end){for(var tmp,num,output=[],i=start;i>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[63&num]);return output.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63},{}],18:[function(require,module,exports){!function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;this.negative=0,this.words=null,this.length=0,this.red=null,null!==number&&("le"!==base&&"be"!==base||(endian=base,base=10),this._init(number||0,base||10,endian||"be"))}var Buffer;"object"==typeof module?module.exports=BN:exports.BN=BN,BN.BN=BN,BN.wordSize=26;try{Buffer="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:require("buffer").Buffer}catch(e){}function parseHex4Bits(string,index){var c=string.charCodeAt(index);return c>=48&&c<=57?c-48:c>=65&&c<=70?c-55:c>=97&&c<=102?c-87:void assert(!1,"Invalid character in "+string)}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);return index-1>=lowerBound&&(r|=parseHex4Bits(string,index-1)<<4),r}function parseBase(str,start,end,mul){for(var r=0,b=0,len=Math.min(str.length,end),i=start;i=49?c-49+10:c>=17?c-17+10:c,assert(c>=0&&b0?left:right},BN.min=function(left,right){return left.cmp(right)<0?left:right},BN.prototype._init=function(number,base,endian){if("number"==typeof number)return this._initNumber(number,base,endian);if("object"==typeof number)return this._initArray(number,base,endian);"hex"===base&&(base=16),assert(base===(0|base)&&base>=2&&base<=36);var start=0;"-"===(number=number.toString().replace(/\s+/g,""))[0]&&(start++,this.negative=1),start=0;i-=3)w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);else if("le"===endian)for(i=0,j=0;i>>26-off&67108863,(off+=24)>=26&&(off-=26,j++);return this._strip()},BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=new Array(this.length);for(var i=0;i=start;i-=2)w=parseHexByte(number,start,i)<=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;else for(i=(number.length-start)%2==0?start+1:start;i=18?(off-=18,j+=1,this.words[j]|=w>>>26):off+=8;this._strip()},BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;for(var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0,i=start;i1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{BN.prototype[Symbol.for("nodejs.util.inspect.custom")]=inspect}catch(e){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?""}var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function(base,padding){var out;if(padding=0|padding||1,16===(base=base||10)||"hex"===base){out="";for(var off=0,carry=0,i=0;i>>24-off&16777215,(off+=2)>=26&&(off-=26,i--),out=0!==carry||i!==this.length-1?zeros[6-word.length]+word+out:word+out}for(0!==carry&&(out=carry.toString(16)+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}if(base===(0|base)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out="";var c=this.clone();for(c.negative=0;!c.isZero();){var r=c.modrn(groupBase).toString(base);out=(c=c.idivn(groupBase)).isZero()?r+out:zeros[groupSize-r.length]+r+out}for(this.isZero()&&(out="0"+out);out.length%padding!=0;)out="0"+out;return 0!==this.negative&&(out="-"+out),out}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function(){var ret=this.words[0];return 2===this.length?ret+=67108864*this.words[1]:3===this.length&&1===this.words[2]?ret+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16,2)},Buffer&&(BN.prototype.toBuffer=function(endian,length){return this.toArrayLike(Buffer,endian,length)}),BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len,len=len-1|0;var a=0|self.words[0],b=0|num.words[0],r=a*b,lo=67108863&r,carry=r/67108864|0;out.words[0]=lo;for(var k=1;k>>26,rword=67108863&carry,maxJ=Math.min(k,num.length-1),j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;ncarry+=(r=(a=0|self.words[i])*(b=0|num.words[j])+rword)/67108864|0,rword=67108863&r}out.words[k]=0|rword,carry=0|ncarry}return 0!==carry?out.words[k]=0|carry:out.length--,out._strip()}BN.prototype.toArrayLike=function(ArrayType,endian,length){this._strip();var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length"),assert(reqLength>0,"Requested array length <= 0");var res=function(ArrayType,size){return ArrayType.allocUnsafe?ArrayType.allocUnsafe(size):new ArrayType(size)}(ArrayType,reqLength);return this["_toArrayLike"+("le"===endian?"LE":"BE")](res,byteLength),res},BN.prototype._toArrayLikeLE=function(res,byteLength){for(var position=0,carry=0,i=0,shift=0;i>8&255),position>16&255),6===shift?(position>24&255),carry=0,shift=0):(carry=word>>>24,shift+=2)}if(position=0&&(res[position--]=word>>8&255),position>=0&&(res[position--]=word>>16&255),6===shift?(position>=0&&(res[position--]=word>>24&255),carry=0,shift=0):(carry=word>>>24,shift+=2)}if(position>=0)for(res[position--]=carry;position>=0;)res[position--]=0},Math.clz32?BN.prototype._countBits=function(w){return 32-Math.clz32(w)}:BN.prototype._countBits=function(w){var t=w,r=0;return t>=4096&&(r+=13,t>>>=13),t>=64&&(r+=7,t>>>=7),t>=8&&(r+=4,t>>>=4),t>=2&&(r+=2,t>>>=2),r+t},BN.prototype._zeroBits=function(w){if(0===w)return 26;var t=w,r=0;return 0==(8191&t)&&(r+=13,t>>>=13),0==(127&t)&&(r+=7,t>>>=7),0==(15&t)&&(r+=4,t>>>=4),0==(3&t)&&(r+=2,t>>>=2),0==(1&t)&&r++,r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return 26*(this.length-1)+hi},BN.prototype.zeroBits=function(){if(this.isZero())return 0;for(var r=0,i=0;inum.length?this.clone().ior(num):num.clone().ior(this)},BN.prototype.uor=function(num){return this.length>num.length?this.clone().iuor(num):num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;b=this.length>num.length?num:this;for(var i=0;inum.length?this.clone().iand(num):num.clone().iand(this)},BN.prototype.uand=function(num){return this.length>num.length?this.clone().iuand(num):num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;this.length>num.length?(a=this,b=num):(a=num,b=this);for(var i=0;inum.length?this.clone().ixor(num):num.clone().ixor(this)},BN.prototype.uxor=function(num){return this.length>num.length?this.clone().iuxor(num):num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert("number"==typeof width&&width>=0);var bytesNeeded=0|Math.ceil(width/26),bitsLeft=width%26;this._expand(bytesNeeded),bitsLeft>0&&bytesNeeded--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-bitsLeft),this._strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert("number"==typeof bit&&bit>=0);var off=bit/26|0,wbit=bit%26;return this._expand(off+1),this.words[off]=val?this.words[off]|1<num.length?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>>26;for(;0!==carry&&i>>26;if(this.length=a.length,0!==carry)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length?this.clone().iadd(num):num.clone().iadd(this)},BN.prototype.isub=function(num){if(0!==num.negative){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var a,b,cmp=this.cmp(num);if(0===cmp)return this.negative=0,this.length=1,this.words[0]=0,this;cmp>0?(a=this,b=num):(a=num,b=this);for(var carry=0,i=0;i>26,this.words[i]=67108863&r;for(;0!==carry&&i>26,this.words[i]=67108863&r;if(0===carry&&i>>13,a1=0|a[1],al1=8191&a1,ah1=a1>>>13,a2=0|a[2],al2=8191&a2,ah2=a2>>>13,a3=0|a[3],al3=8191&a3,ah3=a3>>>13,a4=0|a[4],al4=8191&a4,ah4=a4>>>13,a5=0|a[5],al5=8191&a5,ah5=a5>>>13,a6=0|a[6],al6=8191&a6,ah6=a6>>>13,a7=0|a[7],al7=8191&a7,ah7=a7>>>13,a8=0|a[8],al8=8191&a8,ah8=a8>>>13,a9=0|a[9],al9=8191&a9,ah9=a9>>>13,b0=0|b[0],bl0=8191&b0,bh0=b0>>>13,b1=0|b[1],bl1=8191&b1,bh1=b1>>>13,b2=0|b[2],bl2=8191&b2,bh2=b2>>>13,b3=0|b[3],bl3=8191&b3,bh3=b3>>>13,b4=0|b[4],bl4=8191&b4,bh4=b4>>>13,b5=0|b[5],bl5=8191&b5,bh5=b5>>>13,b6=0|b[6],bl6=8191&b6,bh6=b6>>>13,b7=0|b[7],bl7=8191&b7,bh7=b7>>>13,b8=0|b[8],bl8=8191&b8,bh8=b8>>>13,b9=0|b[9],bl9=8191&b9,bh9=b9>>>13;out.negative=self.negative^num.negative,out.length=19;var w0=(c+(lo=Math.imul(al0,bl0))|0)+((8191&(mid=(mid=Math.imul(al0,bh0))+Math.imul(ah0,bl0)|0))<<13)|0;c=((hi=Math.imul(ah0,bh0))+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=(mid=Math.imul(al1,bh0))+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0);var w1=(c+(lo=lo+Math.imul(al0,bl1)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh1)|0)+Math.imul(ah0,bl1)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh1)|0)+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=(mid=Math.imul(al2,bh0))+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=(mid=mid+Math.imul(al1,bh1)|0)+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0;var w2=(c+(lo=lo+Math.imul(al0,bl2)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh2)|0)+Math.imul(ah0,bl2)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh2)|0)+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=(mid=Math.imul(al3,bh0))+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=(mid=mid+Math.imul(al2,bh1)|0)+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=(mid=mid+Math.imul(al1,bh2)|0)+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0;var w3=(c+(lo=lo+Math.imul(al0,bl3)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh3)|0)+Math.imul(ah0,bl3)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh3)|0)+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=(mid=Math.imul(al4,bh0))+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=(mid=mid+Math.imul(al3,bh1)|0)+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=(mid=mid+Math.imul(al2,bh2)|0)+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=(mid=mid+Math.imul(al1,bh3)|0)+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0;var w4=(c+(lo=lo+Math.imul(al0,bl4)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh4)|0)+Math.imul(ah0,bl4)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh4)|0)+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=(mid=Math.imul(al5,bh0))+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=(mid=mid+Math.imul(al4,bh1)|0)+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=(mid=mid+Math.imul(al3,bh2)|0)+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=(mid=mid+Math.imul(al2,bh3)|0)+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=(mid=mid+Math.imul(al1,bh4)|0)+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0;var w5=(c+(lo=lo+Math.imul(al0,bl5)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh5)|0)+Math.imul(ah0,bl5)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh5)|0)+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=(mid=Math.imul(al6,bh0))+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=(mid=mid+Math.imul(al5,bh1)|0)+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=(mid=mid+Math.imul(al4,bh2)|0)+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=(mid=mid+Math.imul(al3,bh3)|0)+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=(mid=mid+Math.imul(al2,bh4)|0)+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=(mid=mid+Math.imul(al1,bh5)|0)+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0;var w6=(c+(lo=lo+Math.imul(al0,bl6)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh6)|0)+Math.imul(ah0,bl6)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh6)|0)+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=(mid=Math.imul(al7,bh0))+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=(mid=mid+Math.imul(al6,bh1)|0)+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=(mid=mid+Math.imul(al5,bh2)|0)+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=(mid=mid+Math.imul(al4,bh3)|0)+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=(mid=mid+Math.imul(al3,bh4)|0)+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=(mid=mid+Math.imul(al2,bh5)|0)+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=(mid=mid+Math.imul(al1,bh6)|0)+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0;var w7=(c+(lo=lo+Math.imul(al0,bl7)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh7)|0)+Math.imul(ah0,bl7)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh7)|0)+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=(mid=Math.imul(al8,bh0))+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=(mid=mid+Math.imul(al7,bh1)|0)+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=(mid=mid+Math.imul(al6,bh2)|0)+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=(mid=mid+Math.imul(al5,bh3)|0)+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=(mid=mid+Math.imul(al4,bh4)|0)+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=(mid=mid+Math.imul(al3,bh5)|0)+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=(mid=mid+Math.imul(al2,bh6)|0)+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=(mid=mid+Math.imul(al1,bh7)|0)+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0;var w8=(c+(lo=lo+Math.imul(al0,bl8)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh8)|0)+Math.imul(ah0,bl8)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh8)|0)+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=(mid=Math.imul(al9,bh0))+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=(mid=mid+Math.imul(al8,bh1)|0)+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=(mid=mid+Math.imul(al7,bh2)|0)+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=(mid=mid+Math.imul(al6,bh3)|0)+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=(mid=mid+Math.imul(al5,bh4)|0)+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=(mid=mid+Math.imul(al4,bh5)|0)+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=(mid=mid+Math.imul(al3,bh6)|0)+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=(mid=mid+Math.imul(al2,bh7)|0)+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=(mid=mid+Math.imul(al1,bh8)|0)+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0;var w9=(c+(lo=lo+Math.imul(al0,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al0,bh9)|0)+Math.imul(ah0,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah0,bh9)|0)+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=(mid=Math.imul(al9,bh1))+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=(mid=mid+Math.imul(al8,bh2)|0)+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=(mid=mid+Math.imul(al7,bh3)|0)+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=(mid=mid+Math.imul(al6,bh4)|0)+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=(mid=mid+Math.imul(al5,bh5)|0)+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=(mid=mid+Math.imul(al4,bh6)|0)+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=(mid=mid+Math.imul(al3,bh7)|0)+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=(mid=mid+Math.imul(al2,bh8)|0)+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0;var w10=(c+(lo=lo+Math.imul(al1,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al1,bh9)|0)+Math.imul(ah1,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah1,bh9)|0)+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=(mid=Math.imul(al9,bh2))+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=(mid=mid+Math.imul(al8,bh3)|0)+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=(mid=mid+Math.imul(al7,bh4)|0)+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=(mid=mid+Math.imul(al6,bh5)|0)+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=(mid=mid+Math.imul(al5,bh6)|0)+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=(mid=mid+Math.imul(al4,bh7)|0)+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=(mid=mid+Math.imul(al3,bh8)|0)+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0;var w11=(c+(lo=lo+Math.imul(al2,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al2,bh9)|0)+Math.imul(ah2,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah2,bh9)|0)+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=(mid=Math.imul(al9,bh3))+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=(mid=mid+Math.imul(al8,bh4)|0)+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=(mid=mid+Math.imul(al7,bh5)|0)+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=(mid=mid+Math.imul(al6,bh6)|0)+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=(mid=mid+Math.imul(al5,bh7)|0)+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=(mid=mid+Math.imul(al4,bh8)|0)+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0;var w12=(c+(lo=lo+Math.imul(al3,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al3,bh9)|0)+Math.imul(ah3,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah3,bh9)|0)+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=(mid=Math.imul(al9,bh4))+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=(mid=mid+Math.imul(al8,bh5)|0)+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=(mid=mid+Math.imul(al7,bh6)|0)+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=(mid=mid+Math.imul(al6,bh7)|0)+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=(mid=mid+Math.imul(al5,bh8)|0)+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0;var w13=(c+(lo=lo+Math.imul(al4,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al4,bh9)|0)+Math.imul(ah4,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah4,bh9)|0)+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=(mid=Math.imul(al9,bh5))+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=(mid=mid+Math.imul(al8,bh6)|0)+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=(mid=mid+Math.imul(al7,bh7)|0)+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=(mid=mid+Math.imul(al6,bh8)|0)+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0;var w14=(c+(lo=lo+Math.imul(al5,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al5,bh9)|0)+Math.imul(ah5,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah5,bh9)|0)+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=(mid=Math.imul(al9,bh6))+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=(mid=mid+Math.imul(al8,bh7)|0)+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=(mid=mid+Math.imul(al7,bh8)|0)+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0;var w15=(c+(lo=lo+Math.imul(al6,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al6,bh9)|0)+Math.imul(ah6,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah6,bh9)|0)+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=(mid=Math.imul(al9,bh7))+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=(mid=mid+Math.imul(al8,bh8)|0)+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0;var w16=(c+(lo=lo+Math.imul(al7,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al7,bh9)|0)+Math.imul(ah7,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah7,bh9)|0)+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=(mid=Math.imul(al9,bh8))+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8);var w17=(c+(lo=lo+Math.imul(al8,bl9)|0)|0)+((8191&(mid=(mid=mid+Math.imul(al8,bh9)|0)+Math.imul(ah8,bl9)|0))<<13)|0;c=((hi=hi+Math.imul(ah8,bh9)|0)+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863;var w18=(c+(lo=Math.imul(al9,bl9))|0)+((8191&(mid=(mid=Math.imul(al9,bh9))+Math.imul(ah9,bl9)|0))<<13)|0;return c=((hi=Math.imul(ah9,bh9))+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,0!==c&&(o[19]=c,out.length++),out};function bigMulTo(self,num,out){out.negative=num.negative^self.negative,out.length=self.length+num.length;for(var carry=0,hncarry=0,k=0;k>>26)|0)>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}return 0!==carry?out.words[k]=carry:out.length--,out._strip()}function jumboMulTo(self,num,out){return bigMulTo(self,num,out)}function FFTM(x,y){this.x=x,this.y=y}Math.imul||(comb10MulTo=smallMulTo),BN.prototype.mulTo=function(num,out){var len=this.length+num.length;return 10===this.length&&10===num.length?comb10MulTo(this,num,out):len<63?smallMulTo(this,num,out):len<1024?bigMulTo(this,num,out):jumboMulTo(this,num,out)},FFTM.prototype.makeRBT=function(N){for(var t=new Array(N),l=BN.prototype._countBits(N)-1,i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>=1)i++;return 1<>>=13,rws[2*i+1]=8191&carry,carry>>>=13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=67108863&lo}return 0!==carry&&(this.words[i]=carry,this.length++),isNegNum?this.ineg():this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=function(num){for(var w=new Array(num.bitLength()),bit=0;bit>>wbit&1}return w}(num);if(0===w.length)return new BN(1);for(var res=this,i=0;i=0);var i,r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r;if(0!==r){var carry=0;for(i=0;i>>26-r}carry&&(this.words[i]=carry,this.length++)}if(0!==s){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0),h=hint?(hint-hint%26)/26:0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s)for(this.length-=s,i=0;i=0&&(0!==carry||i>=h);i--){var word=0|this.words[i];this.words[i]=carry<<26-r|word>>>r,carry=word&mask}return maskedWords&&0!==carry&&(maskedWords.words[maskedWords.length++]=carry),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(0===this.negative),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert("number"==typeof bit&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=s)return this;if(0!==r&&s++,this.length=Math.min(s,this.length),0!==r){var mask=67108863^67108863>>>r<=67108864;i++)this.words[i]-=67108864,i===this.length-1?this.words[i+1]=1:this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert("number"==typeof num),assert(num<67108864),num<0)return this.iaddn(-num);if(0!==this.negative)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=67108863&w}for(;i>26,this.words[i+shift]=67108863&w;if(0===carry)return this._strip();for(assert(-1===carry),carry=0,i=0;i>26,this.words[i]=67108863&w;return this.negative=1,this._strip()},BN.prototype._wordDiv=function(num,mode){var shift=(this.length,num.length),a=this.clone(),b=num,bhi=0|b.words[b.length-1];0!==(shift=26-this._countBits(bhi))&&(b=b.ushln(shift),a.iushln(shift),bhi=0|b.words[b.length-1]);var q,m=a.length-b.length;if("mod"!==mode){(q=new BN(null)).length=m+1,q.words=new Array(q.length);for(var i=0;i=0;j--){var qj=67108864*(0|a.words[b.length+j])+(0|a.words[b.length+j-1]);for(qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);0!==a.negative;)qj--,a.negative=0,a._ishlnsubmul(b,1,j),a.isZero()||(a.negative^=1);q&&(q.words[j]=qj)}return q&&q._strip(),a._strip(),"div"!==mode&&0!==shift&&a.iushrn(shift),{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){return assert(!num.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===num.negative?(res=this.neg().divmod(num,mode),"mod"!==mode&&(div=res.div.neg()),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.iadd(num)),{div:div,mod:mod}):0===this.negative&&0!==num.negative?(res=this.divmod(num.neg(),mode),"mod"!==mode&&(div=res.div.neg()),{div:div,mod:res.mod}):0!=(this.negative&num.negative)?(res=this.neg().divmod(num.neg(),mode),"div"!==mode&&(mod=res.mod.neg(),positive&&0!==mod.negative&&mod.isub(num)),{div:res.div,mod:mod}):num.length>this.length||this.cmp(num)<0?{div:new BN(0),mod:this}:1===num.length?"div"===mode?{div:this.divn(num.words[0]),mod:null}:"mod"===mode?{div:null,mod:new BN(this.modrn(num.words[0]))}:{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}:this._wordDiv(num,mode);var div,mod,res},BN.prototype.div=function(num){return this.divmod(num,"div",!1).div},BN.prototype.mod=function(num){return this.divmod(num,"mod",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,"mod",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=0!==dm.div.negative?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);return cmp<0||1===r2&&0===cmp?dm.div:0!==dm.div.negative?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modrn=function(num){var isNegNum=num<0;isNegNum&&(num=-num),assert(num<=67108863);for(var p=(1<<26)%num,acc=0,i=this.length-1;i>=0;i--)acc=(p*acc+(0|this.words[i]))%num;return isNegNum?-acc:acc},BN.prototype.modn=function(num){return this.modrn(num)},BN.prototype.idivn=function(num){var isNegNum=num<0;isNegNum&&(num=-num),assert(num<=67108863);for(var carry=0,i=this.length-1;i>=0;i--){var w=(0|this.words[i])+67108864*carry;this.words[i]=w/num|0,carry=w%num}return this._strip(),isNegNum?this.ineg():this},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(0===p.negative),assert(!p.isZero());var x=this,y=p.clone();x=0!==x.negative?x.umod(p):x.clone();for(var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;x.isEven()&&y.isEven();)x.iushrn(1),y.iushrn(1),++g;for(var yp=y.clone(),xp=x.clone();!x.isZero();){for(var i=0,im=1;0==(x.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(x.iushrn(i);i-- >0;)(A.isOdd()||B.isOdd())&&(A.iadd(yp),B.isub(xp)),A.iushrn(1),B.iushrn(1);for(var j=0,jm=1;0==(y.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(y.iushrn(j);j-- >0;)(C.isOdd()||D.isOdd())&&(C.iadd(yp),D.isub(xp)),C.iushrn(1),D.iushrn(1);x.cmp(y)>=0?(x.isub(y),A.isub(C),B.isub(D)):(y.isub(x),C.isub(A),D.isub(B))}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(0===p.negative),assert(!p.isZero());var a=this,b=p.clone();a=0!==a.negative?a.umod(p):a.clone();for(var res,x1=new BN(1),x2=new BN(0),delta=b.clone();a.cmpn(1)>0&&b.cmpn(1)>0;){for(var i=0,im=1;0==(a.words[0]&im)&&i<26;++i,im<<=1);if(i>0)for(a.iushrn(i);i-- >0;)x1.isOdd()&&x1.iadd(delta),x1.iushrn(1);for(var j=0,jm=1;0==(b.words[0]&jm)&&j<26;++j,jm<<=1);if(j>0)for(b.iushrn(j);j-- >0;)x2.isOdd()&&x2.iadd(delta),x2.iushrn(1);a.cmp(b)>=0?(a.isub(b),x1.isub(x2)):(b.isub(a),x2.isub(x1))}return(res=0===a.cmpn(1)?x1:x2).cmpn(0)<0&&res.iadd(p),res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);for(;;){for(;a.isEven();)a.iushrn(1);for(;b.isEven();)b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(0===r||0===b.cmpn(1))break;a.isub(b)}return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return 0==(1&this.words[0])},BN.prototype.isOdd=function(){return 1==(1&this.words[0])},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert("number"==typeof bit);var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}return 0!==carry&&(this.words[i]=carry,this.length++),this},BN.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function(num){var res,negative=num<0;if(0!==this.negative&&!negative)return-1;if(0===this.negative&&negative)return 1;if(this._strip(),this.length>1)res=1;else{negative&&(num=-num),assert(num<=67108863,"Number is too big");var w=0|this.words[0];res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=0|this.words[i],b=0|num.words[i];if(a!==b){ab&&(res=1);break}}return res},BN.prototype.gtn=function(num){return 1===this.cmpn(num)},BN.prototype.gt=function(num){return 1===this.cmp(num)},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return-1===this.cmpn(num)},BN.prototype.lt=function(num){return-1===this.cmp(num)},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return 0===this.cmpn(num)},BN.prototype.eq=function(num){return 0===this.cmp(num)},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,"Already a number in reduction context"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(m){if("string"==typeof m){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),"modulus must be greater than 1"),this.m=m,this.prime=null}function Mont(m){Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=new Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var rlen,r=num;do{this.split(r,this.tmp),rlen=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(rlen>this.n);var cmp=rlen0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function(input,output){for(var outLen=Math.min(input.length,9),i=0;i>>22,prev=next}prev>>>=22,input.words[i-10]=prev,0===prev&&input.length>10?input.length-=10:input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;for(var lo=0,i=0;i>>=26,num.words[i]=lo,carry=hi}return 0!==carry&&(num.words[num.length++]=carry),num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if("k256"===name)prime=new K256;else if("p224"===name)prime=new P224;else if("p192"===name)prime=new P192;else{if("p25519"!==name)throw new Error("Unknown prime "+name);prime=new P25519}return primes[name]=prime,prime},Red.prototype._verify1=function(a){assert(0===a.negative,"red works only with positives"),assert(a.red,"red works only with red numbers")},Red.prototype._verify2=function(a,b){assert(0==(a.negative|b.negative),"red works only with positives"),assert(a.red&&a.red===b.red,"red works only with red numbers")},Red.prototype.imod=function(a){return this.prime?this.prime.ireduce(a)._forceRed(this):(move(a,a.umod(this.m)._forceRed(this)),a)},Red.prototype.neg=function(a){return a.isZero()?a.clone():this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);return res.cmp(this.m)>=0&&res.isub(this.m),res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);return res.cmp(this.m)>=0&&res.isub(this.m),res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);return res.cmpn(0)<0&&res.iadd(this.m),res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);return res.cmpn(0)<0&&res.iadd(this.m),res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2==1),3===mod3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}for(var q=this.m.subn(1),s=0;!q.isZero()&&0===q.andln(1);)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();for(z=new BN(2*z*z).toRed(this);0!==this.pow(z,lpow).cmp(nOne);)z.redIAdd(nOne);for(var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;0!==t.cmp(one);){for(var tmp=t,i=0;0!==tmp.cmp(one);i++)tmp=tmp.redSqr();assert(i=0;i--){for(var word=num.words[i],j=start-1;j>=0;j--){var bit=word>>j&1;res!==wnd[0]&&(res=this.sqr(res)),0!==bit||0!==current?(current<<=1,current|=bit,(4===++currentLen||0===i&&0===j)&&(res=this.mul(res,wnd[current]),currentLen=0,current=0)):currentLen=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)},inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;return u.cmp(this.m)>=0?res=u.isub(this.m):u.cmpn(0)<0&&(res=u.iadd(this.m)),res._forceRed(this)},Mont.prototype.invm=function(a){return this.imod(a._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===module||module,this)},{buffer:20}],19:[function(require,module,exports){var r;function Rand(rand){this.rand=rand}if(module.exports=function(len){return r||(r=new Rand(null)),r.generate(len)},module.exports.Rand=Rand,Rand.prototype.generate=function(len){return this._rand(len)},Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);for(var res=new Uint8Array(n),i=0;i>>24]^SUB_MIX1[s1>>>16&255]^SUB_MIX2[s2>>>8&255]^SUB_MIX3[255&s3]^keySchedule[ksRow++],t1=SUB_MIX0[s1>>>24]^SUB_MIX1[s2>>>16&255]^SUB_MIX2[s3>>>8&255]^SUB_MIX3[255&s0]^keySchedule[ksRow++],t2=SUB_MIX0[s2>>>24]^SUB_MIX1[s3>>>16&255]^SUB_MIX2[s0>>>8&255]^SUB_MIX3[255&s1]^keySchedule[ksRow++],t3=SUB_MIX0[s3>>>24]^SUB_MIX1[s0>>>16&255]^SUB_MIX2[s1>>>8&255]^SUB_MIX3[255&s2]^keySchedule[ksRow++],s0=t0,s1=t1,s2=t2,s3=t3;return t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[255&s3])^keySchedule[ksRow++],t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[255&s0])^keySchedule[ksRow++],t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[255&s1])^keySchedule[ksRow++],t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[255&s2])^keySchedule[ksRow++],[t0>>>=0,t1>>>=0,t2>>>=0,t3>>>=0]}var RCON=[0,1,2,4,8,16,32,64,128,27,54],G=function(){for(var d=new Array(256),j=0;j<256;j++)d[j]=j<128?j<<1:j<<1^283;for(var SBOX=[],INV_SBOX=[],SUB_MIX=[[],[],[],[]],INV_SUB_MIX=[[],[],[],[]],x=0,xi=0,i=0;i<256;++i){var sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^255&sx^99,SBOX[x]=sx,INV_SBOX[sx]=x;var x2=d[x],x4=d[x2],x8=d[x4],t=257*d[sx]^16843008*sx;SUB_MIX[0][x]=t<<24|t>>>8,SUB_MIX[1][x]=t<<16|t>>>16,SUB_MIX[2][x]=t<<8|t>>>24,SUB_MIX[3][x]=t,t=16843009*x8^65537*x4^257*x2^16843008*x,INV_SUB_MIX[0][sx]=t<<24|t>>>8,INV_SUB_MIX[1][sx]=t<<16|t>>>16,INV_SUB_MIX[2][sx]=t<<8|t>>>24,INV_SUB_MIX[3][sx]=t,0===x?x=xi=1:(x=x2^d[d[d[x8^x2]]],xi^=d[d[xi]])}return{SBOX:SBOX,INV_SBOX:INV_SBOX,SUB_MIX:SUB_MIX,INV_SUB_MIX:INV_SUB_MIX}}();function AES(key){this._key=asUInt32Array(key),this._reset()}AES.blockSize=16,AES.keySize=32,AES.prototype.blockSize=AES.blockSize,AES.prototype.keySize=AES.keySize,AES.prototype._reset=function(){for(var keyWords=this._key,keySize=keyWords.length,nRounds=keySize+6,ksRows=4*(nRounds+1),keySchedule=[],k=0;k>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t],t^=RCON[k/keySize|0]<<24):keySize>6&&k%keySize==4&&(t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[255&t]),keySchedule[k]=keySchedule[k-keySize]^t}for(var invKeySchedule=[],ik=0;ik>>24]]^G.INV_SUB_MIX[1][G.SBOX[tt>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[tt>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[255&tt]]}this._nRounds=nRounds,this._keySchedule=keySchedule,this._invKeySchedule=invKeySchedule},AES.prototype.encryptBlockRaw=function(M){return cryptBlock(M=asUInt32Array(M),this._keySchedule,G.SUB_MIX,G.SBOX,this._nRounds)},AES.prototype.encryptBlock=function(M){var out=this.encryptBlockRaw(M),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[1],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[3],12),buf},AES.prototype.decryptBlock=function(M){var m1=(M=asUInt32Array(M))[1];M[1]=M[3],M[3]=m1;var out=cryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX,this._nRounds),buf=Buffer.allocUnsafe(16);return buf.writeUInt32BE(out[0],0),buf.writeUInt32BE(out[3],4),buf.writeUInt32BE(out[2],8),buf.writeUInt32BE(out[1],12),buf},AES.prototype.scrub=function(){scrubVec(this._keySchedule),scrubVec(this._invKeySchedule),scrubVec(this._key)},module.exports.AES=AES},{"safe-buffer":162}],22:[function(require,module,exports){var aes=require("./aes"),Buffer=require("safe-buffer").Buffer,Transform=require("cipher-base"),inherits=require("inherits"),GHASH=require("./ghash"),xor=require("buffer-xor"),incr32=require("./incr32");function StreamCipher(mode,key,iv,decrypt){Transform.call(this);var h=Buffer.alloc(4,0);this._cipher=new aes.AES(key);var ck=this._cipher.encryptBlock(h);this._ghash=new GHASH(ck),iv=function(self,iv,ck){if(12===iv.length)return self._finID=Buffer.concat([iv,Buffer.from([0,0,0,1])]),Buffer.concat([iv,Buffer.from([0,0,0,2])]);var ghash=new GHASH(ck),len=iv.length,toPad=len%16;ghash.update(iv),toPad&&(toPad=16-toPad,ghash.update(Buffer.alloc(toPad,0))),ghash.update(Buffer.alloc(8,0));var ivBits=8*len,tail=Buffer.alloc(8);tail.writeUIntBE(ivBits,0,8),ghash.update(tail),self._finID=ghash.state;var out=Buffer.from(self._finID);return incr32(out),out}(this,iv,ck),this._prev=Buffer.from(iv),this._cache=Buffer.allocUnsafe(0),this._secCache=Buffer.allocUnsafe(0),this._decrypt=decrypt,this._alen=0,this._len=0,this._mode=mode,this._authTag=null,this._called=!1}inherits(StreamCipher,Transform),StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;rump<16&&(rump=Buffer.alloc(rump,0),this._ghash.update(rump))}this._called=!0;var out=this._mode.encrypt(this,chunk);return this._decrypt?this._ghash.update(chunk):this._ghash.update(out),this._len+=chunk.length,out},StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var tag=xor(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(a,b){var out=0;a.length!==b.length&&out++;for(var len=Math.min(a.length,b.length),i=0;i16)throw new Error("unable to decrypt data");var i=-1;for(;++i16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out}else if(this.cache.length>=16)return out=this.cache.slice(0,16),this.cache=this.cache.slice(16),out;return null},Splitter.prototype.flush=function(){if(this.cache.length)return this.cache},exports.createDecipher=function(suite,password){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");var keys=ebtk(password,!1,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)},exports.createDecipheriv=createDecipheriv},{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":65,evp_bytestokey:102,inherits:133,"safe-buffer":162}],25:[function(require,module,exports){var MODES=require("./modes"),AuthCipher=require("./authCipher"),Buffer=require("safe-buffer").Buffer,StreamCipher=require("./streamCipher"),Transform=require("cipher-base"),aes=require("./aes"),ebtk=require("evp_bytestokey");function Cipher(mode,key,iv){Transform.call(this),this._cache=new Splitter,this._cipher=new aes.AES(key),this._prev=Buffer.from(iv),this._mode=mode,this._autopadding=!0}require("inherits")(Cipher,Transform),Cipher.prototype._update=function(data){var chunk,thing;this._cache.add(data);for(var out=[];chunk=this._cache.get();)thing=this._mode.encrypt(this,chunk),out.push(thing);return Buffer.concat(out)};var PADDING=Buffer.alloc(16,16);function Splitter(){this.cache=Buffer.allocUnsafe(0)}function createCipheriv(suite,password,iv){var config=MODES[suite.toLowerCase()];if(!config)throw new TypeError("invalid suite type");if("string"==typeof password&&(password=Buffer.from(password)),password.length!==config.key/8)throw new TypeError("invalid key length "+password.length);if("string"==typeof iv&&(iv=Buffer.from(iv)),"GCM"!==config.mode&&iv.length!==config.iv)throw new TypeError("invalid iv length "+iv.length);return"stream"===config.type?new StreamCipher(config.module,password,iv):"auth"===config.type?new AuthCipher(config.module,password,iv):new Cipher(config.module,password,iv)}Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding)return chunk=this._mode.encrypt(this,chunk),this._cipher.scrub(),chunk;if(!chunk.equals(PADDING))throw this._cipher.scrub(),new Error("data not multiple of block length")},Cipher.prototype.setAutoPadding=function(setTo){return this._autopadding=!!setTo,this},Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])},Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);return this.cache=this.cache.slice(16),out}return null},Splitter.prototype.flush=function(){for(var len=16-this.cache.length,padBuff=Buffer.allocUnsafe(len),i=-1;++i>>0,0),buf.writeUInt32BE(out[1]>>>0,4),buf.writeUInt32BE(out[2]>>>0,8),buf.writeUInt32BE(out[3]>>>0,12),buf}function GHASH(key){this.h=key,this.state=Buffer.alloc(16,0),this.cache=Buffer.allocUnsafe(0)}GHASH.prototype.ghash=function(block){for(var i=-1;++i0;j--)Vi[j]=Vi[j]>>>1|(1&Vi[j-1])<<31;Vi[0]=Vi[0]>>>1,lsbVi&&(Vi[0]=Vi[0]^225<<24)}this.state=fromArray(Zi)},GHASH.prototype.update=function(buf){var chunk;for(this.cache=Buffer.concat([this.cache,buf]);this.cache.length>=16;)chunk=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(chunk)},GHASH.prototype.final=function(abl,bl){return this.cache.length&&this.ghash(Buffer.concat([this.cache,ZEROES],16)),this.ghash(fromArray([0,abl,0,bl])),this.state},module.exports=GHASH},{"safe-buffer":162}],27:[function(require,module,exports){module.exports=function(iv){for(var item,len=iv.length;len--;){if(255!==(item=iv.readUInt8(len))){item++,iv.writeUInt8(item,len);break}iv.writeUInt8(0,len)}}},{}],28:[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);return self._prev=self._cipher.encryptBlock(data),self._prev},exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":63}],29:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,xor=require("buffer-xor");function encryptStart(self,data,decrypt){var len=data.length,out=xor(data,self._cache);return self._cache=self._cache.slice(len),self._prev=Buffer.concat([self._prev,decrypt?data:out]),out}exports.encrypt=function(self,data,decrypt){for(var len,out=Buffer.allocUnsafe(0);data.length;){if(0===self._cache.length&&(self._cache=self._cipher.encryptBlock(self._prev),self._prev=Buffer.allocUnsafe(0)),!(self._cache.length<=data.length)){out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}len=self._cache.length,out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]),data=data.slice(len)}return out}},{"buffer-xor":63,"safe-buffer":162}],30:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function encryptByte(self,byteParam,decrypt){for(var bit,value,i=-1,out=0;++i<8;)bit=byteParam&1<<7-i?128:0,out+=(128&(value=self._cipher.encryptBlock(self._prev)[0]^bit))>>i%8,self._prev=shiftIn(self._prev,decrypt?bit:value);return out}function shiftIn(buffer,value){var len=buffer.length,i=-1,out=Buffer.allocUnsafe(buffer.length);for(buffer=Buffer.concat([buffer,Buffer.from([value])]);++i>7;return out}exports.encrypt=function(self,chunk,decrypt){for(var len=chunk.length,out=Buffer.allocUnsafe(len),i=-1;++i=0||!r.umod(priv.prime1)||!r.umod(priv.prime2));return r}function crt(msg,priv){var blinds=function(priv){var r=getr(priv);return{blinder:r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed(),unblinder:r.invm(priv.modulus)}}(priv),len=priv.modulus.byteLength(),blinded=new BN(msg).mul(blinds.blinder).umod(priv.modulus),c1=blinded.toRed(BN.mont(priv.prime1)),c2=blinded.toRed(BN.mont(priv.prime2)),qinv=priv.coefficient,p=priv.prime1,q=priv.prime2,m1=c1.redPow(priv.exponent1).fromRed(),m2=c2.redPow(priv.exponent2).fromRed(),h=m1.isub(m2).imul(qinv).umod(p).imul(q);return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer,"be",len)}crt.getr=getr,module.exports=crt}).call(this)}).call(this,require("buffer").Buffer)},{"bn.js":18,buffer:64,randombytes:159}],42:[function(require,module,exports){"use strict";module.exports=require("./browser/algorithms.json")},{"./browser/algorithms.json":43}],43:[function(require,module,exports){module.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},{}],44:[function(require,module,exports){module.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},{}],45:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,createHash=require("create-hash"),stream=require("readable-stream"),inherits=require("inherits"),sign=require("./sign"),verify=require("./verify"),algorithms=require("./algorithms.json");function Sign(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hashType=data.hash,this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function Verify(algorithm){stream.Writable.call(this);var data=algorithms[algorithm];if(!data)throw new Error("Unknown message digest");this._hash=createHash(data.hash),this._tag=data.id,this._signType=data.sign}function createSign(algorithm){return new Sign(algorithm)}function createVerify(algorithm){return new Verify(algorithm)}Object.keys(algorithms).forEach((function(key){algorithms[key].id=Buffer.from(algorithms[key].id,"hex"),algorithms[key.toLowerCase()]=algorithms[key]})),inherits(Sign,stream.Writable),Sign.prototype._write=function(data,_,done){this._hash.update(data),done()},Sign.prototype.update=function(data,enc){return this._hash.update("string"==typeof data?Buffer.from(data,enc):data),this},Sign.prototype.sign=function(key,enc){this.end();var hash=this._hash.digest(),sig=sign(hash,key,this._hashType,this._signType,this._tag);return enc?sig.toString(enc):sig},inherits(Verify,stream.Writable),Verify.prototype._write=function(data,_,done){this._hash.update(data),done()},Verify.prototype.update=function(data,enc){return this._hash.update("string"==typeof data?Buffer.from(data,enc):data),this},Verify.prototype.verify=function(key,sig,enc){var sigBuffer="string"==typeof sig?Buffer.from(sig,enc):sig;this.end();var hash=this._hash.digest();return verify(sigBuffer,hash,key,this._signType,this._tag)},module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}},{"./algorithms.json":43,"./sign":46,"./verify":47,"create-hash":68,inherits:133,"readable-stream":62,"safe-buffer":162}],46:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,createHmac=require("create-hmac"),crt=require("browserify-rsa"),EC=require("elliptic").ec,BN=require("bn.js"),parseKeys=require("parse-asn1"),curves=require("./curves.json");function getKey(x,q,hash,algo){if((x=Buffer.from(x.toArray())).length0&&bits.ishrn(shift),bits}function makeKey(q,kv,algo){var t,k;do{for(t=Buffer.alloc(0);8*t.length=0)throw new Error("invalid sig")}module.exports=function(sig,hash,key,signType,tag){var pub=parseKeys(key);if("ec"===pub.type){if("ecdsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var curveId=curves[pub.data.algorithm.curve.join(".")];if(!curveId)throw new Error("unknown curve "+pub.data.algorithm.curve.join("."));var curve=new EC(curveId),pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash,sig,pubkey)}(sig,hash,pub)}if("dsa"===pub.type){if("dsa"!==signType)throw new Error("wrong public key type");return function(sig,hash,pub){var p=pub.data.p,q=pub.data.q,g=pub.data.g,y=pub.data.pub_key,unpacked=parseKeys.signature.decode(sig,"der"),s=unpacked.s,r=unpacked.r;checkValue(s,q),checkValue(r,q);var montp=BN.mont(p),w=s.invm(q),v=g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);return 0===v.cmp(r)}(sig,hash,pub)}if("rsa"!==signType&&"ecdsa/rsa"!==signType)throw new Error("wrong public key type");hash=Buffer.concat([tag,hash]);for(var len=pub.modulus.byteLength(),pad=[1],padNum=0;hash.length+pad.length+22?"one of ".concat(thing," ").concat(expected.slice(0,len-1).join(", "),", or ")+expected[len-1]:2===len?"one of ".concat(thing," ").concat(expected[0]," or ").concat(expected[1]):"of ".concat(thing," ").concat(expected[0])}return"of ".concat(thing," ").concat(String(expected))}createErrorType("ERR_INVALID_OPT_VALUE",(function(name,value){return'The value "'+value+'" is invalid for option "'+name+'"'}),TypeError),createErrorType("ERR_INVALID_ARG_TYPE",(function(name,expected,actual){var determiner,search,pos,msg;if("string"==typeof expected&&(search="not ",expected.substr(!pos||pos<0?0:+pos,search.length)===search)?(determiner="must not be",expected=expected.replace(/^not /,"")):determiner="must be",function(str,search,this_len){return(void 0===this_len||this_len>str.length)&&(this_len=str.length),str.substring(this_len-search.length,this_len)===search}(name," argument"))msg="The ".concat(name," ").concat(determiner," ").concat(oneOf(expected,"type"));else{var type=function(str,search,start){return"number"!=typeof start&&(start=0),!(start+search.length>str.length)&&-1!==str.indexOf(search,start)}(name,".")?"property":"argument";msg='The "'.concat(name,'" ').concat(type," ").concat(determiner," ").concat(oneOf(expected,"type"))}return msg+=". Received type ".concat(typeof actual)}),TypeError),createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),createErrorType("ERR_METHOD_NOT_IMPLEMENTED",(function(name){return"The "+name+" method is not implemented"})),createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close"),createErrorType("ERR_STREAM_DESTROYED",(function(name){return"Cannot call "+name+" after a stream was destroyed"})),createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),createErrorType("ERR_UNKNOWN_ENCODING",(function(arg){return"Unknown encoding: "+arg}),TypeError),createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),module.exports.codes=codes},{}],49:[function(require,module,exports){(function(process){(function(){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj)keys.push(key);return keys};module.exports=Duplex;var Readable=require("./_stream_readable"),Writable=require("./_stream_writable");require("inherits")(Duplex,Readable);for(var keys=objectKeys(Writable.prototype),v=0;v0)if("string"==typeof chunk||state.objectMode||Object.getPrototypeOf(chunk)===Buffer.prototype||(chunk=function(chunk){return Buffer.from(chunk)}(chunk)),addToFront)state.endEmitted?errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT):addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else{if(state.destroyed)return!1;state.reading=!1,state.decoder&&!encoding?(chunk=state.decoder.write(chunk),state.objectMode||0!==chunk.length?addChunk(stream,state,chunk,!1):maybeReadMore(stream,state)):addChunk(stream,state,chunk,!1)}else addToFront||(state.reading=!1,maybeReadMore(stream,state));return!state.ended&&(state.lengthstate.highWaterMark&&(state.highWaterMark=function(n){return n>=MAX_HWM?n=MAX_HWM:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}(n)),n<=state.length?n:state.ended?state.length:(state.needReadable=!0,0))}function emitReadable(stream){var state=stream._readableState;debug("emitReadable",state.needReadable,state.emittedReadable),state.needReadable=!1,state.emittedReadable||(debug("emitReadable",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream))}function emitReadable_(stream){var state=stream._readableState;debug("emitReadable_",state.destroyed,state.length,state.ended),state.destroyed||!state.length&&!state.ended||(stream.emit("readable"),state.emittedReadable=!1),state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){state.readingMore||(state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state))}function maybeReadMore_(stream,state){for(;!state.reading&&!state.ended&&(state.length0,state.resumeScheduled&&!state.paused?state.flowing=!0:self.listenerCount("data")>0&&self.resume()}function nReadingNextTick(self){debug("readable nexttick read 0"),self.read(0)}function resume_(stream,state){debug("resume",state.reading),state.reading||stream.read(0),state.resumeScheduled=!1,stream.emit("resume"),flow(stream),state.flowing&&!state.reading&&stream.read(0)}function flow(stream){var state=stream._readableState;for(debug("flow",state.flowing);state.flowing&&null!==stream.read(););}function fromList(n,state){return 0===state.length?null:(state.objectMode?ret=state.buffer.shift():!n||n>=state.length?(ret=state.decoder?state.buffer.join(""):1===state.buffer.length?state.buffer.first():state.buffer.concat(state.length),state.buffer.clear()):ret=state.buffer.consume(n,state.decoder),ret);var ret}function endReadable(stream){var state=stream._readableState;debug("endReadable",state.endEmitted),state.endEmitted||(state.ended=!0,process.nextTick(endReadableNT,state,stream))}function endReadableNT(state,stream){if(debug("endReadableNT",state.endEmitted,state.length),!state.endEmitted&&0===state.length&&(state.endEmitted=!0,stream.readable=!1,stream.emit("end"),state.autoDestroy)){var wState=stream._writableState;(!wState||wState.autoDestroy&&wState.finished)&&stream.destroy()}}function indexOf(xs,x){for(var i=0,l=xs.length;i=state.highWaterMark:state.length>0)||state.ended))return debug("read: emitReadable",state.length,state.ended),0===state.length&&state.ended?endReadable(this):emitReadable(this),null;if(0===(n=howMuchToRead(n,state))&&state.ended)return 0===state.length&&endReadable(this),null;var ret,doRead=state.needReadable;return debug("need readable",doRead),(0===state.length||state.length-n0?fromList(n,state):null)?(state.needReadable=state.length<=state.highWaterMark,n=0):(state.length-=n,state.awaitDrain=0),0===state.length&&(state.ended||(state.needReadable=!0),nOrig!==n&&state.ended&&endReadable(this)),null!==ret&&this.emit("data",ret),ret},Readable.prototype._read=function(n){errorOrDestroy(this,new ERR_METHOD_NOT_IMPLEMENTED("_read()"))},Readable.prototype.pipe=function(dest,pipeOpts){var src=this,state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest)}state.pipesCount+=1,debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var endFn=(!pipeOpts||!1!==pipeOpts.end)&&dest!==process.stdout&&dest!==process.stderr?onend:unpipe;function onunpipe(readable,unpipeInfo){debug("onunpipe"),readable===src&&unpipeInfo&&!1===unpipeInfo.hasUnpiped&&(unpipeInfo.hasUnpiped=!0,debug("cleanup"),dest.removeListener("close",onclose),dest.removeListener("finish",onfinish),dest.removeListener("drain",ondrain),dest.removeListener("error",onerror),dest.removeListener("unpipe",onunpipe),src.removeListener("end",onend),src.removeListener("end",unpipe),src.removeListener("data",ondata),cleanedUp=!0,!state.awaitDrain||dest._writableState&&!dest._writableState.needDrain||ondrain())}function onend(){debug("onend"),dest.end()}state.endEmitted?process.nextTick(endFn):src.once("end",endFn),dest.on("unpipe",onunpipe);var ondrain=function(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain),state.awaitDrain&&state.awaitDrain--,0===state.awaitDrain&&EElistenerCount(src,"data")&&(state.flowing=!0,flow(src))}}(src);dest.on("drain",ondrain);var cleanedUp=!1;function ondata(chunk){debug("ondata");var ret=dest.write(chunk);debug("dest.write",ret),!1===ret&&((1===state.pipesCount&&state.pipes===dest||state.pipesCount>1&&-1!==indexOf(state.pipes,dest))&&!cleanedUp&&(debug("false write response, pause",state.awaitDrain),state.awaitDrain++),src.pause())}function onerror(er){debug("onerror",er),unpipe(),dest.removeListener("error",onerror),0===EElistenerCount(dest,"error")&&errorOrDestroy(dest,er)}function onclose(){dest.removeListener("finish",onfinish),unpipe()}function onfinish(){debug("onfinish"),dest.removeListener("close",onclose),unpipe()}function unpipe(){debug("unpipe"),src.unpipe(dest)}return src.on("data",ondata),function(emitter,event,fn){if("function"==typeof emitter.prependListener)return emitter.prependListener(event,fn);emitter._events&&emitter._events[event]?Array.isArray(emitter._events[event])?emitter._events[event].unshift(fn):emitter._events[event]=[fn,emitter._events[event]]:emitter.on(event,fn)}(dest,"error",onerror),dest.once("close",onclose),dest.once("finish",onfinish),dest.emit("pipe",src),state.flowing||(debug("pipe resume"),src.resume()),dest},Readable.prototype.unpipe=function(dest){var state=this._readableState,unpipeInfo={hasUnpiped:!1};if(0===state.pipesCount)return this;if(1===state.pipesCount)return dest&&dest!==state.pipes||(dest||(dest=state.pipes),state.pipes=null,state.pipesCount=0,state.flowing=!1,dest&&dest.emit("unpipe",this,unpipeInfo)),this;if(!dest){var dests=state.pipes,len=state.pipesCount;state.pipes=null,state.pipesCount=0,state.flowing=!1;for(var i=0;i0,!1!==state.flowing&&this.resume()):"readable"===ev&&(state.endEmitted||state.readableListening||(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug("on readable",state.length,state.reading),state.length?emitReadable(this):state.reading||process.nextTick(nReadingNextTick,this))),res},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.removeListener=function(ev,fn){var res=Stream.prototype.removeListener.call(this,ev,fn);return"readable"===ev&&process.nextTick(updateReadableListening,this),res},Readable.prototype.removeAllListeners=function(ev){var res=Stream.prototype.removeAllListeners.apply(this,arguments);return"readable"!==ev&&void 0!==ev||process.nextTick(updateReadableListening,this),res},Readable.prototype.resume=function(){var state=this._readableState;return state.flowing||(debug("resume"),state.flowing=!state.readableListening,function(stream,state){state.resumeScheduled||(state.resumeScheduled=!0,process.nextTick(resume_,stream,state))}(this,state)),state.paused=!1,this},Readable.prototype.pause=function(){return debug("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(debug("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},Readable.prototype.wrap=function(stream){var _this=this,state=this._readableState,paused=!1;for(var i in stream.on("end",(function(){if(debug("wrapped end"),state.decoder&&!state.ended){var chunk=state.decoder.end();chunk&&chunk.length&&_this.push(chunk)}_this.push(null)})),stream.on("data",(function(chunk){(debug("wrapped data"),state.decoder&&(chunk=state.decoder.write(chunk)),state.objectMode&&null==chunk)||(state.objectMode||chunk&&chunk.length)&&(_this.push(chunk)||(paused=!0,stream.pause()))})),stream)void 0===this[i]&&"function"==typeof stream[i]&&(this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i));for(var n=0;n-1))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this},Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Writable.prototype._write=function(chunk,encoding,cb){cb(new ERR_METHOD_NOT_IMPLEMENTED("_write()"))},Writable.prototype._writev=null,Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;return"function"==typeof chunk?(cb=chunk,chunk=null,encoding=null):"function"==typeof encoding&&(cb=encoding,encoding=null),null!=chunk&&this.write(chunk,encoding),state.corked&&(state.corked=1,this.uncork()),state.ending||function(stream,state,cb){state.ending=!0,finishMaybe(stream,state),cb&&(state.finished?process.nextTick(cb):stream.once("finish",cb));state.ended=!0,stream.writable=!1}(this,state,cb),this},Object.defineProperty(Writable.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(Writable.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(value){this._writableState&&(this._writableState.destroyed=value)}}),Writable.prototype.destroy=destroyImpl.destroy,Writable.prototype._undestroy=destroyImpl.undestroy,Writable.prototype._destroy=function(err,cb){cb(err)}}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../errors":48,"./_stream_duplex":49,"./internal/streams/destroy":56,"./internal/streams/state":60,"./internal/streams/stream":61,_process:151,buffer:64,inherits:133,"util-deprecate":188}],54:[function(require,module,exports){(function(process){(function(){"use strict";var _Object$setPrototypeO;function _defineProperty(obj,key,value){return(key=function(arg){var key=function(input,hint){if("object"!=typeof input||null===input)return input;var prim=input[Symbol.toPrimitive];if(void 0!==prim){var res=prim.call(input,hint||"default");if("object"!=typeof res)return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===hint?String:Number)(input)}(arg,"string");return"symbol"==typeof key?key:String(key)}(key))in obj?Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}):obj[key]=value,obj}var finished=require("./end-of-stream"),kLastResolve=Symbol("lastResolve"),kLastReject=Symbol("lastReject"),kError=Symbol("error"),kEnded=Symbol("ended"),kLastPromise=Symbol("lastPromise"),kHandlePromise=Symbol("handlePromise"),kStream=Symbol("stream");function createIterResult(value,done){return{value:value,done:done}}function readAndResolve(iter){var resolve=iter[kLastResolve];if(null!==resolve){var data=iter[kStream].read();null!==data&&(iter[kLastPromise]=null,iter[kLastResolve]=null,iter[kLastReject]=null,resolve(createIterResult(data,!1)))}}function onReadable(iter){process.nextTick(readAndResolve,iter)}var AsyncIteratorPrototype=Object.getPrototypeOf((function(){})),ReadableStreamAsyncIteratorPrototype=Object.setPrototypeOf((_defineProperty(_Object$setPrototypeO={get stream(){return this[kStream]},next:function(){var _this=this,error=this[kError];if(null!==error)return Promise.reject(error);if(this[kEnded])return Promise.resolve(createIterResult(void 0,!0));if(this[kStream].destroyed)return new Promise((function(resolve,reject){process.nextTick((function(){_this[kError]?reject(_this[kError]):resolve(createIterResult(void 0,!0))}))}));var promise,lastPromise=this[kLastPromise];if(lastPromise)promise=new Promise(function(lastPromise,iter){return function(resolve,reject){lastPromise.then((function(){iter[kEnded]?resolve(createIterResult(void 0,!0)):iter[kHandlePromise](resolve,reject)}),reject)}}(lastPromise,this));else{var data=this[kStream].read();if(null!==data)return Promise.resolve(createIterResult(data,!1));promise=new Promise(this[kHandlePromise])}return this[kLastPromise]=promise,promise}},Symbol.asyncIterator,(function(){return this})),_defineProperty(_Object$setPrototypeO,"return",(function(){var _this2=this;return new Promise((function(resolve,reject){_this2[kStream].destroy(null,(function(err){err?reject(err):resolve(createIterResult(void 0,!0))}))}))})),_Object$setPrototypeO),AsyncIteratorPrototype);module.exports=function(stream){var _Object$create,iterator=Object.create(ReadableStreamAsyncIteratorPrototype,(_defineProperty(_Object$create={},kStream,{value:stream,writable:!0}),_defineProperty(_Object$create,kLastResolve,{value:null,writable:!0}),_defineProperty(_Object$create,kLastReject,{value:null,writable:!0}),_defineProperty(_Object$create,kError,{value:null,writable:!0}),_defineProperty(_Object$create,kEnded,{value:stream._readableState.endEmitted,writable:!0}),_defineProperty(_Object$create,kHandlePromise,{value:function(resolve,reject){var data=iterator[kStream].read();data?(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(data,!1))):(iterator[kLastResolve]=resolve,iterator[kLastReject]=reject)},writable:!0}),_Object$create));return iterator[kLastPromise]=null,finished(stream,(function(err){if(err&&"ERR_STREAM_PREMATURE_CLOSE"!==err.code){var reject=iterator[kLastReject];return null!==reject&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,reject(err)),void(iterator[kError]=err)}var resolve=iterator[kLastResolve];null!==resolve&&(iterator[kLastPromise]=null,iterator[kLastResolve]=null,iterator[kLastReject]=null,resolve(createIterResult(void 0,!0))),iterator[kEnded]=!0})),stream.on("readable",onReadable.bind(null,iterator)),iterator}}).call(this)}).call(this,require("_process"))},{"./end-of-stream":57,_process:151}],55:[function(require,module,exports){"use strict";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter((function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable}))),keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i0?this.tail.next=entry:this.head=entry,this.tail=entry,++this.length}},{key:"unshift",value:function(v){var entry={data:v,next:this.head};0===this.length&&(this.tail=entry),this.head=entry,++this.length}},{key:"shift",value:function(){if(0!==this.length){var ret=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,ret}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(s){if(0===this.length)return"";for(var p=this.head,ret=""+p.data;p=p.next;)ret+=s+p.data;return ret}},{key:"concat",value:function(n){if(0===this.length)return Buffer.alloc(0);for(var src,target,offset,ret=Buffer.allocUnsafe(n>>>0),p=this.head,i=0;p;)src=p.data,target=ret,offset=i,Buffer.prototype.copy.call(src,target,offset),i+=p.data.length,p=p.next;return ret}},{key:"consume",value:function(n,hasStrings){var ret;return nstr.length?str.length:n;if(nb===str.length?ret+=str:ret+=str.slice(0,n),0==(n-=nb)){nb===str.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=str.slice(nb));break}++c}return this.length-=c,ret}},{key:"_getBuffer",value:function(n){var ret=Buffer.allocUnsafe(n),p=this.head,c=1;for(p.data.copy(ret),n-=p.data.length;p=p.next;){var buf=p.data,nb=n>buf.length?buf.length:n;if(buf.copy(ret,ret.length-n,0,nb),0==(n-=nb)){nb===buf.length?(++c,p.next?this.head=p.next:this.head=this.tail=null):(this.head=p,p.data=buf.slice(nb));break}++c}return this.length-=c,ret}},{key:custom,value:function(_,options){return inspect(this,_objectSpread(_objectSpread({},options),{},{depth:0,customInspect:!1}))}}])&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Object.defineProperty(Constructor,"prototype",{writable:!1}),BufferList}()},{buffer:64,util:20}],56:[function(require,module,exports){(function(process){(function(){"use strict";function emitErrorAndCloseNT(self,err){emitErrorNT(self,err),emitCloseNT(self)}function emitCloseNT(self){self._writableState&&!self._writableState.emitClose||self._readableState&&!self._readableState.emitClose||self.emit("close")}function emitErrorNT(self,err){self.emit("error",err)}module.exports={destroy:function(err,cb){var _this=this,readableDestroyed=this._readableState&&this._readableState.destroyed,writableDestroyed=this._writableState&&this._writableState.destroyed;return readableDestroyed||writableDestroyed?(cb?cb(err):err&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,err)):process.nextTick(emitErrorNT,this,err)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(err||null,(function(err){!cb&&err?_this._writableState?_this._writableState.errorEmitted?process.nextTick(emitCloseNT,_this):(_this._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,_this,err)):process.nextTick(emitErrorAndCloseNT,_this,err):cb?(process.nextTick(emitCloseNT,_this),cb(err)):process.nextTick(emitCloseNT,_this)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(stream,err){var rState=stream._readableState,wState=stream._writableState;rState&&rState.autoDestroy||wState&&wState.autoDestroy?stream.destroy(err):stream.emit("error",err)}}}).call(this)}).call(this,require("_process"))},{_process:151}],57:[function(require,module,exports){"use strict";var ERR_STREAM_PREMATURE_CLOSE=require("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;function noop(){}module.exports=function eos(stream,opts,callback){if("function"==typeof opts)return eos(stream,null,opts);opts||(opts={}),callback=function(callback){var called=!1;return function(){if(!called){called=!0;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];callback.apply(this,args)}}}(callback||noop);var readable=opts.readable||!1!==opts.readable&&stream.readable,writable=opts.writable||!1!==opts.writable&&stream.writable,onlegacyfinish=function(){stream.writable||onfinish()},writableEnded=stream._writableState&&stream._writableState.finished,onfinish=function(){writable=!1,writableEnded=!0,readable||callback.call(stream)},readableEnded=stream._readableState&&stream._readableState.endEmitted,onend=function(){readable=!1,readableEnded=!0,writable||callback.call(stream)},onerror=function(err){callback.call(stream,err)},onclose=function(){var err;return readable&&!readableEnded?(stream._readableState&&stream._readableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):writable&&!writableEnded?(stream._writableState&&stream._writableState.ended||(err=new ERR_STREAM_PREMATURE_CLOSE),callback.call(stream,err)):void 0},onrequest=function(){stream.req.on("finish",onfinish)};return!function(stream){return stream.setHeader&&"function"==typeof stream.abort}(stream)?writable&&!stream._writableState&&(stream.on("end",onlegacyfinish),stream.on("close",onlegacyfinish)):(stream.on("complete",onfinish),stream.on("abort",onclose),stream.req?onrequest():stream.on("request",onrequest)),stream.on("end",onend),stream.on("finish",onfinish),!1!==opts.error&&stream.on("error",onerror),stream.on("close",onclose),function(){stream.removeListener("complete",onfinish),stream.removeListener("abort",onclose),stream.removeListener("request",onrequest),stream.req&&stream.req.removeListener("finish",onfinish),stream.removeListener("end",onlegacyfinish),stream.removeListener("close",onlegacyfinish),stream.removeListener("finish",onfinish),stream.removeListener("end",onend),stream.removeListener("error",onerror),stream.removeListener("close",onclose)}}},{"../../../errors":48}],58:[function(require,module,exports){module.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],59:[function(require,module,exports){"use strict";var eos;var _require$codes=require("../../../errors").codes,ERR_MISSING_ARGS=_require$codes.ERR_MISSING_ARGS,ERR_STREAM_DESTROYED=_require$codes.ERR_STREAM_DESTROYED;function noop(err){if(err)throw err}function call(fn){fn()}function pipe(from,to){return from.pipe(to)}module.exports=function(){for(var _len=arguments.length,streams=new Array(_len),_key=0;_key<_len;_key++)streams[_key]=arguments[_key];var error,callback=function(streams){return streams.length?"function"!=typeof streams[streams.length-1]?noop:streams.pop():noop}(streams);if(Array.isArray(streams[0])&&(streams=streams[0]),streams.length<2)throw new ERR_MISSING_ARGS("streams");var destroys=streams.map((function(stream,i){var reading=i0,(function(err){error||(error=err),err&&destroys.forEach(call),reading||(destroys.forEach(call),callback(error))}))}));return streams.reduce(pipe)}},{"../../../errors":48,"./end-of-stream":57}],60:[function(require,module,exports){"use strict";var ERR_INVALID_OPT_VALUE=require("../../../errors").codes.ERR_INVALID_OPT_VALUE;module.exports={getHighWaterMark:function(state,options,duplexKey,isDuplex){var hwm=function(options,isDuplex,duplexKey){return null!=options.highWaterMark?options.highWaterMark:isDuplex?options[duplexKey]:null}(options,isDuplex,duplexKey);if(null!=hwm){if(!isFinite(hwm)||Math.floor(hwm)!==hwm||hwm<0)throw new ERR_INVALID_OPT_VALUE(isDuplex?duplexKey:"highWaterMark",hwm);return Math.floor(hwm)}return state.objectMode?16:16384}}},{"../../../errors":48}],61:[function(require,module,exports){module.exports=require("events").EventEmitter},{events:101}],62:[function(require,module,exports){(exports=module.exports=require("./lib/_stream_readable.js")).Stream=exports,exports.Readable=exports,exports.Writable=require("./lib/_stream_writable.js"),exports.Duplex=require("./lib/_stream_duplex.js"),exports.Transform=require("./lib/_stream_transform.js"),exports.PassThrough=require("./lib/_stream_passthrough.js"),exports.finished=require("./lib/internal/streams/end-of-stream.js"),exports.pipeline=require("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":49,"./lib/_stream_passthrough.js":50,"./lib/_stream_readable.js":51,"./lib/_stream_transform.js":52,"./lib/_stream_writable.js":53,"./lib/internal/streams/end-of-stream.js":57,"./lib/internal/streams/pipeline.js":59}],63:[function(require,module,exports){(function(Buffer){(function(){module.exports=function(a,b){for(var length=Math.min(a.length,b.length),buffer=new Buffer(length),i=0;i + * @license MIT + */ +"use strict";var base64=require("base64-js"),ieee754=require("ieee754");exports.Buffer=Buffer,exports.SlowBuffer=function(length){+length!=length&&(length=0);return Buffer.alloc(+length)},exports.INSPECT_MAX_BYTES=50;var K_MAX_LENGTH=2147483647;function createBuffer(length){if(length>K_MAX_LENGTH)throw new RangeError('The value "'+length+'" is invalid for option "size"');var buf=new Uint8Array(length);return buf.__proto__=Buffer.prototype,buf}function Buffer(arg,encodingOrOffset,length){if("number"==typeof arg){if("string"==typeof encodingOrOffset)throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}function from(value,encodingOrOffset,length){if("string"==typeof value)return function(string,encoding){"string"==typeof encoding&&""!==encoding||(encoding="utf8");if(!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);var length=0|byteLength(string,encoding),buf=createBuffer(length),actual=buf.write(string,encoding);actual!==length&&(buf=buf.slice(0,actual));return buf}(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayLike(value);if(null==value)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return function(array,byteOffset,length){if(byteOffset<0||array.byteLength=K_MAX_LENGTH)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+K_MAX_LENGTH.toString(16)+" bytes");return 0|length}function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if("string"!=typeof string)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);var len=string.length,mustMatch=arguments.length>2&&!0===arguments[2];if(!mustMatch&&0===len)return 0;for(var loweredCase=!1;;)switch(encoding){case"ascii":case"latin1":case"binary":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*len;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase(),loweredCase=!0}}function slowToString(encoding,start,end){var loweredCase=!1;if((void 0===start||start<0)&&(start=0),start>this.length)return"";if((void 0===end||end>this.length)&&(end=this.length),end<=0)return"";if((end>>>=0)<=(start>>>=0))return"";for(encoding||(encoding="utf8");;)switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase(),loweredCase=!0}}function swap(b,n,m){var i=b[n];b[n]=b[m],b[m]=i}function bidirectionalIndexOf(buffer,val,byteOffset,encoding,dir){if(0===buffer.length)return-1;if("string"==typeof byteOffset?(encoding=byteOffset,byteOffset=0):byteOffset>2147483647?byteOffset=2147483647:byteOffset<-2147483648&&(byteOffset=-2147483648),numberIsNaN(byteOffset=+byteOffset)&&(byteOffset=dir?0:buffer.length-1),byteOffset<0&&(byteOffset=buffer.length+byteOffset),byteOffset>=buffer.length){if(dir)return-1;byteOffset=buffer.length-1}else if(byteOffset<0){if(!dir)return-1;byteOffset=0}if("string"==typeof val&&(val=Buffer.from(val,encoding)),Buffer.isBuffer(val))return 0===val.length?-1:arrayIndexOf(buffer,val,byteOffset,encoding,dir);if("number"==typeof val)return val&=255,"function"==typeof Uint8Array.prototype.indexOf?dir?Uint8Array.prototype.indexOf.call(buffer,val,byteOffset):Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset):arrayIndexOf(buffer,[val],byteOffset,encoding,dir);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var i,indexSize=1,arrLength=arr.length,valLength=val.length;if(void 0!==encoding&&("ucs2"===(encoding=String(encoding).toLowerCase())||"ucs-2"===encoding||"utf16le"===encoding||"utf-16le"===encoding)){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}function read(buf,i){return 1===indexSize?buf[i]:buf.readUInt16BE(i*indexSize)}if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength&&(byteOffset=arrLength-valLength),i=byteOffset;i>=0;i--){for(var found=!0,j=0;jremaining&&(length=remaining):length=remaining;var strLen=string.length;length>strLen/2&&(length=strLen/2);for(var i=0;i>8,lo=c%256,byteArray.push(lo),byteArray.push(hi);return byteArray}(string,buf.length-offset),buf,offset,length)}function base64Slice(buf,start,end){return 0===start&&end===buf.length?base64.fromByteArray(buf):base64.fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);for(var res=[],i=start;i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end)switch(bytesPerSequence){case 1:firstByte<128&&(codePoint=firstByte);break;case 2:128==(192&(secondByte=buf[i+1]))&&(tempCodePoint=(31&firstByte)<<6|63&secondByte)>127&&(codePoint=tempCodePoint);break;case 3:secondByte=buf[i+1],thirdByte=buf[i+2],128==(192&secondByte)&&128==(192&thirdByte)&&(tempCodePoint=(15&firstByte)<<12|(63&secondByte)<<6|63&thirdByte)>2047&&(tempCodePoint<55296||tempCodePoint>57343)&&(codePoint=tempCodePoint);break;case 4:secondByte=buf[i+1],thirdByte=buf[i+2],fourthByte=buf[i+3],128==(192&secondByte)&&128==(192&thirdByte)&&128==(192&fourthByte)&&(tempCodePoint=(15&firstByte)<<18|(63&secondByte)<<12|(63&thirdByte)<<6|63&fourthByte)>65535&&tempCodePoint<1114112&&(codePoint=tempCodePoint)}null===codePoint?(codePoint=65533,bytesPerSequence=1):codePoint>65535&&(codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|1023&codePoint),res.push(codePoint),i+=bytesPerSequence}return function(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);var res="",i=0;for(;imax&&(str+=" ... "),""},Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array)&&(target=Buffer.from(target,target.offset,target.byteLength)),!Buffer.isBuffer(target))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(void 0===start&&(start=0),void 0===end&&(end=target?target.length:0),void 0===thisStart&&(thisStart=0),void 0===thisEnd&&(thisEnd=this.length),start<0||end>target.length||thisStart<0||thisEnd>this.length)throw new RangeError("out of range index");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(this===target)return 0;for(var x=(thisEnd>>>=0)-(thisStart>>>=0),y=(end>>>=0)-(start>>>=0),len=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end),i=0;i>>=0,isFinite(length)?(length>>>=0,void 0===encoding&&(encoding="utf8")):(encoding=length,length=void 0)}var remaining=this.length-offset;if((void 0===length||length>remaining)&&(length=remaining),string.length>0&&(length<0||offset<0)||offset>this.length)throw new RangeError("Attempt to write outside buffer bounds");encoding||(encoding="utf8");for(var loweredCase=!1;;)switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase(),loweredCase=!0}},Buffer.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var MAX_ARGUMENTS_LENGTH=4096;function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;ilen)&&(end=len);for(var out="",i=start;ilength)throw new RangeError("Trying to access beyond buffer length")}function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,4),ieee754.write(buf,value,offset,littleEndian,23,4),offset+4}function writeDouble(buf,value,offset,littleEndian,noAssert){return value=+value,offset>>>=0,noAssert||checkIEEE754(buf,0,offset,8),ieee754.write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.slice=function(start,end){var len=this.length;(start=~~start)<0?(start+=len)<0&&(start=0):start>len&&(start=len),(end=void 0===end?len:~~end)<0?(end+=len)<0&&(end=0):end>len&&(end=len),end>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset+--byteLength],mul=1;byteLength>0&&(mul*=256);)val+=this[offset+--byteLength]*mul;return val},Buffer.prototype.readUInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),this[offset]},Buffer.prototype.readUInt16LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]|this[offset+1]<<8},Buffer.prototype.readUInt16BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,2,this.length),this[offset]<<8|this[offset+1]},Buffer.prototype.readUInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+16777216*this[offset+3]},Buffer.prototype.readUInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),16777216*this[offset]+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])},Buffer.prototype.readIntLE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var val=this[offset],mul=1,i=0;++i=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readIntBE=function(offset,byteLength,noAssert){offset>>>=0,byteLength>>>=0,noAssert||checkOffset(offset,byteLength,this.length);for(var i=byteLength,mul=1,val=this[offset+--i];i>0&&(mul*=256);)val+=this[offset+--i]*mul;return val>=(mul*=128)&&(val-=Math.pow(2,8*byteLength)),val},Buffer.prototype.readInt8=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,1,this.length),128&this[offset]?-1*(255-this[offset]+1):this[offset]},Buffer.prototype.readInt16LE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt16BE=function(offset,noAssert){offset>>>=0,noAssert||checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return 32768&val?4294901760|val:val},Buffer.prototype.readInt32LE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24},Buffer.prototype.readInt32BE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]},Buffer.prototype.readFloatLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!0,23,4)},Buffer.prototype.readFloatBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,4,this.length),ieee754.read(this,offset,!1,23,4)},Buffer.prototype.readDoubleLE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!0,52,8)},Buffer.prototype.readDoubleBE=function(offset,noAssert){return offset>>>=0,noAssert||checkOffset(offset,8,this.length),ieee754.read(this,offset,!1,52,8)},Buffer.prototype.writeUIntLE=function(value,offset,byteLength,noAssert){(value=+value,offset>>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var mul=1,i=0;for(this[offset]=255&value;++i>>=0,byteLength>>>=0,noAssert)||checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength)-1,0);var i=byteLength-1,mul=1;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)this[offset+i]=value/mul&255;return offset+byteLength},Buffer.prototype.writeUInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,255,0),this[offset]=255&value,offset+1},Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,65535,0),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=255&value,offset+4},Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,4294967295,0),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeIntLE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0,mul=1,sub=0;for(this[offset]=255&value;++i>0)-sub&255;return offset+byteLength},Buffer.prototype.writeIntBE=function(value,offset,byteLength,noAssert){if(value=+value,offset>>>=0,!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1,mul=1,sub=0;for(this[offset+i]=255&value;--i>=0&&(mul*=256);)value<0&&0===sub&&0!==this[offset+i+1]&&(sub=1),this[offset+i]=(value/mul>>0)-sub&255;return offset+byteLength},Buffer.prototype.writeInt8=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,1,127,-128),value<0&&(value=255+value+1),this[offset]=255&value,offset+1},Buffer.prototype.writeInt16LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=255&value,this[offset+1]=value>>>8,offset+2},Buffer.prototype.writeInt16BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,2,32767,-32768),this[offset]=value>>>8,this[offset+1]=255&value,offset+2},Buffer.prototype.writeInt32LE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),this[offset]=255&value,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4},Buffer.prototype.writeInt32BE=function(value,offset,noAssert){return value=+value,offset>>>=0,noAssert||checkInt(this,value,offset,4,2147483647,-2147483648),value<0&&(value=4294967295+value+1),this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=255&value,offset+4},Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)},Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)},Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)},Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)},Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw new TypeError("argument should be a Buffer");if(start||(start=0),end||0===end||(end=this.length),targetStart>=target.length&&(targetStart=target.length),targetStart||(targetStart=0),end>0&&end=this.length)throw new RangeError("Index out of range");if(end<0)throw new RangeError("sourceEnd out of bounds");end>this.length&&(end=this.length),target.length-targetStart=0;--i)target[i+targetStart]=this[i+start];else Uint8Array.prototype.set.call(target,this.subarray(start,end),targetStart);return len},Buffer.prototype.fill=function(val,start,end,encoding){if("string"==typeof val){if("string"==typeof start?(encoding=start,start=0,end=this.length):"string"==typeof end&&(encoding=end,end=this.length),void 0!==encoding&&"string"!=typeof encoding)throw new TypeError("encoding must be a string");if("string"==typeof encoding&&!Buffer.isEncoding(encoding))throw new TypeError("Unknown encoding: "+encoding);if(1===val.length){var code=val.charCodeAt(0);("utf8"===encoding&&code<128||"latin1"===encoding)&&(val=code)}}else"number"==typeof val&&(val&=255);if(start<0||this.length>>=0,end=void 0===end?this.length:end>>>0,val||(val=0),"number"==typeof val)for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){(units-=3)>-1&&bytes.push(239,191,189);continue}if(i+1===length){(units-=3)>-1&&bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){(units-=3)>-1&&bytes.push(239,191,189),leadSurrogate=codePoint;continue}codePoint=65536+(leadSurrogate-55296<<10|codePoint-56320)}else leadSurrogate&&(units-=3)>-1&&bytes.push(239,191,189);if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,63&codePoint|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,63&codePoint|128)}else{if(!(codePoint<1114112))throw new Error("Invalid code point");if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,63&codePoint|128)}}return bytes}function base64ToBytes(str){return base64.toByteArray(function(str){if((str=(str=str.split("=")[0]).trim().replace(INVALID_BASE64_RE,"")).length<2)return"";for(;str.length%4!=0;)str+="=";return str}(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length);++i)dst[i+offset]=src[i];return i}function isInstance(obj,type){return obj instanceof type||null!=obj&&null!=obj.constructor&&null!=obj.constructor.name&&obj.constructor.name===type.name}function numberIsNaN(obj){return obj!=obj}}).call(this)}).call(this,require("buffer").Buffer)},{"base64-js":17,buffer:64,ieee754:132}],65:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,Transform=require("stream").Transform,StringDecoder=require("string_decoder").StringDecoder;function CipherBase(hashMode){Transform.call(this),this.hashMode="string"==typeof hashMode,this.hashMode?this[hashMode]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}require("inherits")(CipherBase,Transform),CipherBase.prototype.update=function(data,inputEnc,outputEnc){"string"==typeof data&&(data=Buffer.from(data,inputEnc));var outData=this._update(data);return this.hashMode?this:(outputEnc&&(outData=this._toString(outData,outputEnc)),outData)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(data,_,next){var err;try{this.hashMode?this._update(data):this.push(this._update(data))}catch(e){err=e}finally{next(err)}},CipherBase.prototype._flush=function(done){var err;try{this.push(this.__final())}catch(e){err=e}done(err)},CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this.__final()||Buffer.alloc(0);return outputEnc&&(outData=this._toString(outData,outputEnc,!0)),outData},CipherBase.prototype._toString=function(value,enc,fin){if(this._decoder||(this._decoder=new StringDecoder(enc),this._encoding=enc),this._encoding!==enc)throw new Error("can't switch encodings");var out=this._decoder.write(value);return fin&&(out+=this._decoder.end()),out},module.exports=CipherBase},{inherits:133,"safe-buffer":162,stream:172,string_decoder:187}],66:[function(require,module,exports){(function(Buffer){(function(){var elliptic=require("elliptic"),BN=require("bn.js");module.exports=function(curve){return new ECDH(curve)};var aliases={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function ECDH(curve){this.curveType=aliases[curve],this.curveType||(this.curveType={name:curve}),this.curve=new elliptic.ec(this.curveType.name),this.keys=void 0}function formatReturnValue(bn,enc,len){Array.isArray(bn)||(bn=bn.toArray());var buf=new Buffer(bn);if(len&&buf.lengthblocksize)?key=("rmd160"===alg?new RIPEMD160:sha(alg)).update(key).digest():key.length64?key=alg(key):key.length<64&&(key=Buffer.concat([key,ZEROS],64));for(var ipad=this._ipad=Buffer.allocUnsafe(64),opad=this._opad=Buffer.allocUnsafe(64),i=0;i<64;i++)ipad[i]=54^key[i],opad[i]=92^key[i];this._hash=[ipad]}inherits(Hmac,Base),Hmac.prototype._update=function(data){this._hash.push(data)},Hmac.prototype._final=function(){var h=this._alg(Buffer.concat(this._hash));return this._alg(Buffer.concat([this._opad,h]))},module.exports=Hmac},{"cipher-base":65,inherits:133,"safe-buffer":162}],72:[function(require,module,exports){"use strict";exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require("randombytes"),exports.createHash=exports.Hash=require("create-hash"),exports.createHmac=exports.Hmac=require("create-hmac");var algos=require("browserify-sign/algos"),algoKeys=Object.keys(algos),hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require("pbkdf2");exports.pbkdf2=p.pbkdf2,exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require("browserify-cipher");exports.Cipher=aes.Cipher,exports.createCipher=aes.createCipher,exports.Cipheriv=aes.Cipheriv,exports.createCipheriv=aes.createCipheriv,exports.Decipher=aes.Decipher,exports.createDecipher=aes.createDecipher,exports.Decipheriv=aes.Decipheriv,exports.createDecipheriv=aes.createDecipheriv,exports.getCiphers=aes.getCiphers,exports.listCiphers=aes.listCiphers;var dh=require("diffie-hellman");exports.DiffieHellmanGroup=dh.DiffieHellmanGroup,exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup,exports.getDiffieHellman=dh.getDiffieHellman,exports.createDiffieHellman=dh.createDiffieHellman,exports.DiffieHellman=dh.DiffieHellman;var sign=require("browserify-sign");exports.createSign=sign.createSign,exports.Sign=sign.Sign,exports.createVerify=sign.createVerify,exports.Verify=sign.Verify,exports.createECDH=require("create-ecdh");var publicEncrypt=require("public-encrypt");exports.publicEncrypt=publicEncrypt.publicEncrypt,exports.privateEncrypt=publicEncrypt.privateEncrypt,exports.publicDecrypt=publicEncrypt.publicDecrypt,exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require("randomfill");exports.randomFill=rf.randomFill,exports.randomFillSync=rf.randomFillSync,exports.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},exports.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},{"browserify-cipher":38,"browserify-sign":45,"browserify-sign/algos":42,"create-ecdh":66,"create-hash":68,"create-hmac":70,"diffie-hellman":79,pbkdf2:145,"public-encrypt":152,randombytes:159,randomfill:160}],73:[function(require,module,exports){"use strict";exports.utils=require("./des/utils"),exports.Cipher=require("./des/cipher"),exports.DES=require("./des/des"),exports.CBC=require("./des/cbc"),exports.EDE=require("./des/ede")},{"./des/cbc":74,"./des/cipher":75,"./des/des":76,"./des/ede":77,"./des/utils":78}],74:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits"),proto={};function CBCState(iv){assert.equal(iv.length,8,"Invalid IV length"),this.iv=new Array(8);for(var i=0;i0;count--)inputOff+=this._buffer(data,inputOff),outputOff+=this._flushBuffer(out,outputOff);return inputOff+=this._buffer(data,inputOff),out},Cipher.prototype.final=function(buffer){var first,last;return buffer&&(first=this.update(buffer)),last="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),first?first.concat(last):last},Cipher.prototype._pad=function(buffer,off){if(0===off)return!1;for(;off>>1];kL=utils.r28shl(kL,shift),kR=utils.r28shl(kR,shift),utils.pc2(kL,kR,state.keys,i)}},DES.prototype._update=function(inp,inOff,out,outOff){var state=this._desState,l=utils.readUInt32BE(inp,inOff),r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],"encrypt"===this.type?this._encrypt(state,l,r,state.tmp,0):this._decrypt(state,l,r,state.tmp,0),l=state.tmp[0],r=state.tmp[1],utils.writeUInt32BE(out,l,outOff),utils.writeUInt32BE(out,r,outOff+4)},DES.prototype._pad=function(buffer,off){if(!1===this.padding)return!1;for(var value=buffer.length-off,i=off;i>>0,l=t}utils.rip(r,l,out,off)},DES.prototype._decrypt=function(state,lStart,rStart,out,off){for(var l=rStart,r=lStart,i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i],keyR=state.keys[i+1];utils.expand(l,state.tmp,0),keyL^=state.tmp[0],keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR),t=l;l=(r^utils.permute(s))>>>0,r=t}utils.rip(l,r,out,off)}},{"./cipher":75,"./utils":78,inherits:133,"minimalistic-assert":137}],77:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits"),Cipher=require("./cipher"),DES=require("./des");function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8),k2=key.slice(8,16),k3=key.slice(16,24);this.ciphers="encrypt"===type?[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]:[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1})]}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher),module.exports=EDE,EDE.create=function(options){return new EDE(options)},EDE.prototype._update=function(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff),state.ciphers[1]._update(out,outOff,out,outOff),state.ciphers[2]._update(out,outOff,out,outOff)},EDE.prototype._pad=DES.prototype._pad,EDE.prototype._unpad=DES.prototype._unpad},{"./cipher":75,"./des":76,inherits:133,"minimalistic-assert":137}],78:[function(require,module,exports){"use strict";exports.readUInt32BE=function(bytes,off){return(bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off])>>>0},exports.writeUInt32BE=function(bytes,value,off){bytes[0+off]=value>>>24,bytes[1+off]=value>>>16&255,bytes[2+off]=value>>>8&255,bytes[3+off]=255&value},exports.ip=function(inL,inR,out,off){for(var outL=0,outR=0,i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8)outL<<=1,outL|=inR>>>j+i&1;for(j=0;j<=24;j+=8)outL<<=1,outL|=inL>>>j+i&1}for(i=6;i>=0;i-=2){for(j=1;j<=25;j+=8)outR<<=1,outR|=inR>>>j+i&1;for(j=1;j<=25;j+=8)outR<<=1,outR|=inL>>>j+i&1}out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.rip=function(inL,inR,out,off){for(var outL=0,outR=0,i=0;i<4;i++)for(var j=24;j>=0;j-=8)outL<<=1,outL|=inR>>>j+i&1,outL<<=1,outL|=inL>>>j+i&1;for(i=4;i<8;i++)for(j=24;j>=0;j-=8)outR<<=1,outR|=inR>>>j+i&1,outR<<=1,outR|=inL>>>j+i&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.pc1=function(inL,inR,out,off){for(var outL=0,outR=0,i=7;i>=5;i--){for(var j=0;j<=24;j+=8)outL<<=1,outL|=inR>>j+i&1;for(j=0;j<=24;j+=8)outL<<=1,outL|=inL>>j+i&1}for(j=0;j<=24;j+=8)outL<<=1,outL|=inR>>j+i&1;for(i=1;i<=3;i++){for(j=0;j<=24;j+=8)outR<<=1,outR|=inR>>j+i&1;for(j=0;j<=24;j+=8)outR<<=1,outR|=inL>>j+i&1}for(j=0;j<=24;j+=8)outR<<=1,outR|=inL>>j+i&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.r28shl=function(num,shift){return num<>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function(inL,inR,out,off){for(var outL=0,outR=0,len=pc2table.length>>>1,i=0;i>>pc2table[i]&1;for(i=len;i>>pc2table[i]&1;out[off+0]=outL>>>0,out[off+1]=outR>>>0},exports.expand=function(r,out,off){var outL=0,outR=0;outL=(1&r)<<5|r>>>27;for(var i=23;i>=15;i-=4)outL<<=6,outL|=r>>>i&63;for(i=11;i>=3;i-=4)outR|=r>>>i&63,outR<<=6;outR|=(31&r)<<1|r>>>31,out[off+0]=outL>>>0,out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function(inL,inR){for(var out=0,i=0;i<4;i++){out<<=4,out|=sTable[64*i+(inL>>>18-6*i&63)]}for(i=0;i<4;i++){out<<=4,out|=sTable[256+64*i+(inR>>>18-6*i&63)]}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function(num){for(var out=0,i=0;i>>permuteTable[i]&1;return out>>>0},exports.padSplit=function(num,size,group){for(var str=num.toString(2);str.lengthbits;)num.ishrn(1);if(num.isEven()&&num.iadd(ONE),num.testn(1)||num.iadd(TWO),gen.cmp(TWO)){if(!gen.cmp(FIVE))for(;num.mod(TEN).cmp(THREE);)num.iadd(FOUR)}else for(;num.mod(TWENTYFOUR).cmp(ELEVEN);)num.iadd(FOUR);if(simpleSieve(n2=num.shrn(1))&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num))return num}}},{"bn.js":83,"miller-rabin":135,randombytes:159}],82:[function(require,module,exports){module.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],83:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{buffer:20,dup:16}],84:[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version,elliptic.utils=require("./elliptic/utils"),elliptic.rand=require("brorand"),elliptic.curve=require("./elliptic/curve"),elliptic.curves=require("./elliptic/curves"),elliptic.ec=require("./elliptic/ec"),elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":100,"./elliptic/curve":87,"./elliptic/curves":90,"./elliptic/ec":91,"./elliptic/eddsa":94,"./elliptic/utils":98,brorand:19}],85:[function(require,module,exports){"use strict";var BN=require("bn.js"),utils=require("../utils"),getNAF=utils.getNAF,getJSF=utils.getJSF,assert=utils.assert;function BaseCurve(type,conf){this.type=type,this.p=new BN(conf.p,16),this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p),this.zero=new BN(0).toRed(this.red),this.one=new BN(1).toRed(this.red),this.two=new BN(2).toRed(this.red),this.n=conf.n&&new BN(conf.n,16),this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var adjustCount=this.n&&this.p.div(this.n);!adjustCount||adjustCount.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function BasePoint(curve,type){this.curve=curve,this.type=type,this.precomputed=null}module.exports=BaseCurve,BaseCurve.prototype.point=function(){throw new Error("Not implemented")},BaseCurve.prototype.validate=function(){throw new Error("Not implemented")},BaseCurve.prototype._fixedNafMul=function(p,k){assert(p.precomputed);var doubles=p._getDoubles(),naf=getNAF(k,1,this._bitLength),I=(1<=j;l--)nafW=(nafW<<1)+naf[l];repr.push(nafW)}for(var a=this.jpoint(null,null,null),b=this.jpoint(null,null,null),i=I;i>0;i--){for(j=0;j=0;i--){for(var l=0;i>=0&&0===naf[i];i--)l++;if(i>=0&&l++,acc=acc.dblp(l),i<0)break;var z=naf[i];assert(0!==z),acc="affine"===p.type?z>0?acc.mixedAdd(wnd[z-1>>1]):acc.mixedAdd(wnd[-z-1>>1].neg()):z>0?acc.add(wnd[z-1>>1]):acc.add(wnd[-z-1>>1].neg())}return"affine"===p.type?acc.toP():acc},BaseCurve.prototype._wnafMulAdd=function(defW,points,coeffs,len,jacobianResult){var i,j,p,wndWidth=this._wnafT1,wnd=this._wnafT2,naf=this._wnafT3,max=0;for(i=0;i=1;i-=2){var a=i-1,b=i;if(1===wndWidth[a]&&1===wndWidth[b]){var comb=[points[a],null,null,points[b]];0===points[a].y.cmp(points[b].y)?(comb[1]=points[a].add(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg())):0===points[a].y.cmp(points[b].y.redNeg())?(comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].add(points[b].neg())):(comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg()));var index=[-3,-1,-5,-7,0,7,5,1,3],jsf=getJSF(coeffs[a],coeffs[b]);for(max=Math.max(jsf[0].length,max),naf[a]=new Array(max),naf[b]=new Array(max),j=0;j=0;i--){for(var k=0;i>=0;){var zero=!0;for(j=0;j=0&&k++,acc=acc.dblp(k),i<0)break;for(j=0;j0?p=wnd[j][z-1>>1]:z<0&&(p=wnd[j][-z-1>>1].neg()),acc="affine"===p.type?acc.mixedAdd(p):acc.add(p))}}for(i=0;i=Math.ceil((k.bitLength()+1)/doubles.step)},BasePoint.prototype._getDoubles=function(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var doubles=[this],acc=this,i=0;i":""},Point.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function(){var a=this.x.redSqr(),b=this.y.redSqr(),c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a),e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),g=d.redAdd(b),f=g.redSub(c),h=d.redSub(b),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projDbl=function(){var nx,ny,nz,e,h,j,b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr();if(this.curve.twisted){var f=(e=this.curve._mulA(c)).redAdd(d);this.zOne?(nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)),ny=f.redMul(e.redSub(d)),nz=f.redSqr().redSub(f).redSub(f)):(h=this.z.redSqr(),j=f.redSub(h).redISub(h),nx=b.redSub(c).redISub(d).redMul(j),ny=f.redMul(e.redSub(d)),nz=f.redMul(j))}else e=c.redAdd(d),h=this.curve._mulC(this.z).redSqr(),j=e.redSub(h).redSub(h),nx=this.curve._mulC(b.redISub(e)).redMul(j),ny=this.curve._mulC(e).redMul(c.redISub(d)),nz=e.redMul(j);return this.curve.point(nx,ny,nz)},Point.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),c=this.t.redMul(this.curve.dd).redMul(p.t),d=this.z.redMul(p.z.redAdd(p.z)),e=b.redSub(a),f=d.redSub(c),g=d.redAdd(c),h=b.redAdd(a),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)},Point.prototype._projAdd=function(p){var ny,nz,a=this.z.redMul(p.z),b=a.redSqr(),c=this.x.redMul(p.x),d=this.y.redMul(p.y),e=this.curve.d.redMul(c).redMul(d),f=b.redSub(e),g=b.redAdd(e),tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),nx=a.redMul(f).redMul(tmp);return this.curve.twisted?(ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c))),nz=f.redMul(g)):(ny=a.redMul(g).redMul(d.redSub(c)),nz=this.curve._mulC(f).redMul(g)),this.curve.point(nx,ny,nz)},Point.prototype.add=function(p){return this.isInfinity()?p:p.isInfinity()?this:this.curve.extended?this._extAdd(p):this._projAdd(p)},Point.prototype.mul=function(k){return this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!1)},Point.prototype.jmulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!0)},Point.prototype.normalize=function(){if(this.zOne)return this;var zi=this.z.redInvm();return this.x=this.x.redMul(zi),this.y=this.y.redMul(zi),this.t&&(this.t=this.t.redMul(zi)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function(other){return this===other||0===this.getX().cmp(other.getX())&&0===this.getY().cmp(other.getY())},Point.prototype.eqXToP=function(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(rx))return!0;for(var xc=x.clone(),t=this.curve.redN.redMul(this.z);;){if(xc.iadd(this.curve.n),xc.cmp(this.curve.p)>=0)return!1;if(rx.redIAdd(t),0===this.x.cmp(rx))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],87:[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base"),curve.short=require("./short"),curve.mont=require("./mont"),curve.edwards=require("./edwards")},{"./base":85,"./edwards":86,"./mont":88,"./short":89}],88:[function(require,module,exports){"use strict";var BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),utils=require("../utils");function MontCurve(conf){Base.call(this,"mont",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.i4=new BN(4).toRed(this.red).redInvm(),this.two=new BN(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective"),null===x&&null===z?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new BN(x,16),this.z=new BN(z,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}inherits(MontCurve,Base),module.exports=MontCurve,MontCurve.prototype.validate=function(point){var x=point.normalize().x,x2=x.redSqr(),rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);return 0===rhs.redSqrt().redSqr().cmp(rhs)},inherits(Point,Base.BasePoint),MontCurve.prototype.decodePoint=function(bytes,enc){return this.point(utils.toArray(bytes,enc),1)},MontCurve.prototype.point=function(x,z){return new Point(this,x,z)},MontCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)},Point.prototype.precompute=function(){},Point.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)},Point.prototype.inspect=function(){return this.isInfinity()?"":""},Point.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},Point.prototype.dbl=function(){var aa=this.x.redAdd(this.z).redSqr(),bb=this.x.redSub(this.z).redSqr(),c=aa.redSub(bb),nx=aa.redMul(bb),nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)},Point.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.diffAdd=function(p,diff){var a=this.x.redAdd(this.z),b=this.x.redSub(this.z),c=p.x.redAdd(p.z),da=p.x.redSub(p.z).redMul(a),cb=c.redMul(b),nx=diff.z.redMul(da.redAdd(cb).redSqr()),nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)},Point.prototype.mul=function(k){for(var t=k.clone(),a=this,b=this.curve.point(null,null),bits=[];0!==t.cmpn(0);t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--)0===bits[i]?(a=a.diffAdd(b,this),b=b.dbl()):(b=a.diffAdd(b,this),a=a.dbl());return b},Point.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},Point.prototype.eq=function(other){return 0===this.getX().cmp(other.getX())},Point.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],89:[function(require,module,exports){"use strict";var utils=require("../utils"),BN=require("bn.js"),inherits=require("inherits"),Base=require("./base"),assert=utils.assert;function ShortCurve(conf){Base.call(this,"short",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(conf),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine"),null===x&&null===y?(this.x=null,this.y=null,this.inf=!0):(this.x=new BN(x,16),this.y=new BN(y,16),isRed&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian"),null===x&&null===y&&null===z?(this.x=this.curve.one,this.y=this.curve.one,this.z=new BN(0)):(this.x=new BN(x,16),this.y=new BN(y,16),this.z=new BN(z,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}inherits(ShortCurve,Base),module.exports=ShortCurve,ShortCurve.prototype._getEndomorphism=function(conf){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var beta,lambda;if(conf.beta)beta=new BN(conf.beta,16).toRed(this.red);else{var betas=this._getEndoRoots(this.p);beta=(beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1]).toRed(this.red)}if(conf.lambda)lambda=new BN(conf.lambda,16);else{var lambdas=this._getEndoRoots(this.n);0===this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))?lambda=lambdas[0]:(lambda=lambdas[1],assert(0===this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))))}return{beta:beta,lambda:lambda,basis:conf.basis?conf.basis.map((function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}})):this._getEndoBasis(lambda)}}},ShortCurve.prototype._getEndoRoots=function(num){var red=num===this.p?this.red:BN.mont(num),tinv=new BN(2).toRed(red).redInvm(),ntinv=tinv.redNeg(),s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);return[ntinv.redAdd(s).fromRed(),ntinv.redSub(s).fromRed()]},ShortCurve.prototype._getEndoBasis=function(lambda){for(var a0,b0,a1,b1,a2,b2,prevR,r,x,aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=lambda,v=this.n.clone(),x1=new BN(1),y1=new BN(0),x2=new BN(0),y2=new BN(1),i=0;0!==u.cmpn(0);){var q=v.div(u);r=v.sub(q.mul(u)),x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0)a0=prevR.neg(),b0=x1,a1=r.neg(),b1=x;else if(a1&&2==++i)break;prevR=r,v=u,u=r,x2=x1,x1=x,y2=y1,y1=y}a2=r.neg(),b2=x;var len1=a1.sqr().add(b1.sqr());return a2.sqr().add(b2.sqr()).cmp(len1)>=0&&(a2=a0,b2=b0),a1.negative&&(a1=a1.neg(),b1=b1.neg()),a2.negative&&(a2=a2.neg(),b2=b2.neg()),[{a:a1,b:b1},{a:a2,b:b2}]},ShortCurve.prototype._endoSplit=function(k){var basis=this.endo.basis,v1=basis[0],v2=basis[1],c1=v2.b.mul(k).divRound(this.n),c2=v1.b.neg().mul(k).divRound(this.n),p1=c1.mul(v1.a),p2=c2.mul(v2.a),q1=c1.mul(v1.b),q2=c2.mul(v2.b);return{k1:k.sub(p1).sub(p2),k2:q1.add(q2).neg()}},ShortCurve.prototype.pointFromX=function(x,odd){(x=new BN(x,16)).red||(x=x.toRed(this.red));var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),y=y2.redSqrt();if(0!==y.redSqr().redSub(y2).cmp(this.zero))throw new Error("invalid point");var isOdd=y.fromRed().isOdd();return(odd&&!isOdd||!odd&&isOdd)&&(y=y.redNeg()),this.point(x,y)},ShortCurve.prototype.validate=function(point){if(point.inf)return!0;var x=point.x,y=point.y,ax=this.a.redMul(x),rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return 0===y.redSqr().redISub(rhs).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function(points,coeffs,jacobianResult){for(var npoints=this._endoWnafT1,ncoeffs=this._endoWnafT2,i=0;i":""},Point.prototype.isInfinity=function(){return this.inf},Point.prototype.add=function(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(0===this.x.cmp(p.x))return this.curve.point(null,null);var c=this.y.redSub(p.y);0!==c.cmpn(0)&&(c=c.redMul(this.x.redSub(p.x).redInvm()));var nx=c.redSqr().redISub(this.x).redISub(p.x),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.dbl=function(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(0===ys1.cmpn(0))return this.curve.point(null,null);var a=this.curve.a,x2=this.x.redSqr(),dyinv=ys1.redInvm(),c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),nx=c.redSqr().redISub(this.x.redAdd(this.x)),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)},Point.prototype.getX=function(){return this.x.fromRed()},Point.prototype.getY=function(){return this.y.fromRed()},Point.prototype.mul=function(k){return k=new BN(k,16),this.isInfinity()?this:this._hasDoubles(k)?this.curve._fixedNafMul(this,k):this.curve.endo?this.curve._endoWnafMulAdd([this],[k]):this.curve._wnafMul(this,k)},Point.prototype.mulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs):this.curve._wnafMulAdd(1,points,coeffs,2)},Point.prototype.jmulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];return this.curve.endo?this.curve._endoWnafMulAdd(points,coeffs,!0):this.curve._wnafMulAdd(1,points,coeffs,2,!0)},Point.prototype.eq=function(p){return this===p||this.inf===p.inf&&(this.inf||0===this.x.cmp(p.x)&&0===this.y.cmp(p.y))},Point.prototype.neg=function(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed,negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res},Point.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},inherits(JPoint,Base.BasePoint),ShortCurve.prototype.jpoint=function(x,y,z){return new JPoint(this,x,y,z)},JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm(),zinv2=zinv.redSqr(),ax=this.x.redMul(zinv2),ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)},JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr(),z2=this.z.redSqr(),u1=this.x.redMul(pz2),u2=p.x.redMul(z2),s1=this.y.redMul(pz2.redMul(p.z)),s2=p.y.redMul(z2.redMul(this.z)),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0!==r.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.mixedAdd=function(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr(),u1=this.x,u2=p.x.redMul(z2),s1=this.y,s2=p.y.redMul(z2).redMul(this.z),h=u1.redSub(u2),r=s1.redSub(s2);if(0===h.cmpn(0))return 0!==r.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)},JPoint.prototype.dblp=function(pow){if(0===pow)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();var i;if(this.curve.zeroA||this.curve.threeA){var r=this;for(i=0;i=0)return!1;if(rx.redIAdd(t),0===this.x.cmp(rx))return!0}},JPoint.prototype.inspect=function(){return this.isInfinity()?"":""},JPoint.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},{"../utils":98,"./base":85,"bn.js":99,inherits:133}],90:[function(require,module,exports){"use strict";var pre,curves=exports,hash=require("hash.js"),curve=require("./curve"),assert=require("./utils").assert;function PresetCurve(options){"short"===options.type?this.curve=new curve.short(options):"edwards"===options.type?this.curve=new curve.edwards(options):this.curve=new curve.mont(options),this.g=this.curve.g,this.n=this.curve.n,this.hash=options.hash,assert(this.g.validate(),"Invalid curve"),assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,get:function(){var curve=new PresetCurve(options);return Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,value:curve}),curve}})}curves.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{pre=require("./precomputed/secp256k1")}catch(e){pre=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"./curve":87,"./precomputed/secp256k1":97,"./utils":98,"hash.js":119}],91:[function(require,module,exports){"use strict";var BN=require("bn.js"),HmacDRBG=require("hmac-drbg"),utils=require("../utils"),curves=require("../curves"),rand=require("brorand"),assert=utils.assert,KeyPair=require("./key"),Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);"string"==typeof options&&(assert(Object.prototype.hasOwnProperty.call(curves,options),"Unknown curve "+options),options=curves[options]),options instanceof curves.PresetCurve&&(options={curve:options}),this.curve=options.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=options.curve.g,this.g.precompute(options.curve.n.bitLength()+1),this.hash=options.hash||options.curve.hash}module.exports=EC,EC.prototype.keyPair=function(options){return new KeyPair(this,options)},EC.prototype.keyFromPrivate=function(priv,enc){return KeyPair.fromPrivate(this,priv,enc)},EC.prototype.keyFromPublic=function(pub,enc){return KeyPair.fromPublic(this,pub,enc)},EC.prototype.genKeyPair=function(options){options||(options={});for(var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||"utf8",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||"utf8",nonce:this.n.toArray()}),bytes=this.n.byteLength(),ns2=this.n.sub(new BN(2));;){var priv=new BN(drbg.generate(bytes));if(!(priv.cmp(ns2)>0))return priv.iaddn(1),this.keyFromPrivate(priv)}},EC.prototype._truncateToN=function(msg,truncOnly){var delta=8*msg.byteLength()-this.n.bitLength();return delta>0&&(msg=msg.ushrn(delta)),!truncOnly&&msg.cmp(this.n)>=0?msg.sub(this.n):msg},EC.prototype.sign=function(msg,key,enc,options){"object"==typeof enc&&(options=enc,enc=null),options||(options={}),key=this.keyFromPrivate(key,enc),msg=this._truncateToN(new BN(msg,16));for(var bytes=this.n.byteLength(),bkey=key.getPrivate().toArray("be",bytes),nonce=msg.toArray("be",bytes),drbg=new HmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce,pers:options.pers,persEnc:options.persEnc||"utf8"}),ns1=this.n.sub(new BN(1)),iter=0;;iter++){var k=options.k?options.k(iter):new BN(drbg.generate(this.n.byteLength()));if(!((k=this._truncateToN(k,!0)).cmpn(1)<=0||k.cmp(ns1)>=0)){var kp=this.g.mul(k);if(!kp.isInfinity()){var kpX=kp.getX(),r=kpX.umod(this.n);if(0!==r.cmpn(0)){var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));if(0!==(s=s.umod(this.n)).cmpn(0)){var recoveryParam=(kp.getY().isOdd()?1:0)|(0!==kpX.cmp(r)?2:0);return options.canonical&&s.cmp(this.nh)>0&&(s=this.n.sub(s),recoveryParam^=1),new Signature({r:r,s:s,recoveryParam:recoveryParam})}}}}}},EC.prototype.verify=function(msg,signature,key,enc){msg=this._truncateToN(new BN(msg,16)),key=this.keyFromPublic(key,enc);var r=(signature=new Signature(signature,"hex")).r,s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var p,sinv=s.invm(this.n),u1=sinv.mul(msg).umod(this.n),u2=sinv.mul(r).umod(this.n);return this.curve._maxwellTrick?!(p=this.g.jmulAdd(u1,key.getPublic(),u2)).isInfinity()&&p.eqXToP(r):!(p=this.g.mulAdd(u1,key.getPublic(),u2)).isInfinity()&&0===p.getX().umod(this.n).cmp(r)},EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits"),signature=new Signature(signature,enc);var n=this.n,e=new BN(msg),r=signature.r,s=signature.s,isYOdd=1&j,isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error("Unable to find sencond key candinate");r=isSecondKey?this.curve.pointFromX(r.add(this.curve.n),isYOdd):this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n),s1=n.sub(e).mul(rInv).umod(n),s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)},EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){if(null!==(signature=new Signature(signature,enc)).recoveryParam)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e){continue}if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../curves":90,"../utils":98,"./key":92,"./signature":93,"bn.js":99,brorand:19,"hmac-drbg":131}],92:[function(require,module,exports){"use strict";var BN=require("bn.js"),assert=require("../utils").assert;function KeyPair(ec,options){this.ec=ec,this.priv=null,this.pub=null,options.priv&&this._importPrivate(options.priv,options.privEnc),options.pub&&this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair,KeyPair.fromPublic=function(ec,pub,enc){return pub instanceof KeyPair?pub:new KeyPair(ec,{pub:pub,pubEnc:enc})},KeyPair.fromPrivate=function(ec,priv,enc){return priv instanceof KeyPair?priv:new KeyPair(ec,{priv:priv,privEnc:enc})},KeyPair.prototype.validate=function(){var pub=this.getPublic();return pub.isInfinity()?{result:!1,reason:"Invalid public key"}:pub.validate()?pub.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair.prototype.getPublic=function(compact,enc){return"string"==typeof compact&&(enc=compact,compact=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),enc?this.pub.encode(enc,compact):this.pub},KeyPair.prototype.getPrivate=function(enc){return"hex"===enc?this.priv.toString(16,2):this.priv},KeyPair.prototype._importPrivate=function(key,enc){this.priv=new BN(key,enc||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair.prototype._importPublic=function(key,enc){if(key.x||key.y)return"mont"===this.ec.curve.type?assert(key.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||assert(key.x&&key.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(key.x,key.y));this.pub=this.ec.curve.decodePoint(key,enc)},KeyPair.prototype.derive=function(pub){return pub.validate()||assert(pub.validate(),"public point not validated"),pub.mul(this.priv).getX()},KeyPair.prototype.sign=function(msg,enc,options){return this.ec.sign(msg,this,enc,options)},KeyPair.prototype.verify=function(msg,signature){return this.ec.verify(msg,signature,this)},KeyPair.prototype.inspect=function(){return""}},{"../utils":98,"bn.js":99}],93:[function(require,module,exports){"use strict";var BN=require("bn.js"),utils=require("../utils"),assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;this._importDER(options,enc)||(assert(options.r&&options.s,"Signature without r or s"),this.r=new BN(options.r,16),this.s=new BN(options.s,16),void 0===options.recoveryParam?this.recoveryParam=null:this.recoveryParam=options.recoveryParam)}function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(128&initial))return initial;var octetLen=15&initial;if(0===octetLen||octetLen>4)return!1;for(var val=0,i=0,off=p.place;i>>=0;return!(val<=127)&&(p.place=off,val)}function rmPadding(buf){for(var i=0,len=buf.length-1;!buf[i]&&!(128&buf[i+1])&&i>>3);for(arr.push(128|octets);--octets;)arr.push(len>>>(octets<<3)&255);arr.push(len)}}module.exports=Signature,Signature.prototype._importDER=function(data,enc){data=utils.toArray(data,enc);var p=new Position;if(48!==data[p.place++])return!1;var len=getLength(data,p);if(!1===len)return!1;if(len+p.place!==data.length)return!1;if(2!==data[p.place++])return!1;var rlen=getLength(data,p);if(!1===rlen)return!1;var r=data.slice(p.place,rlen+p.place);if(p.place+=rlen,2!==data[p.place++])return!1;var slen=getLength(data,p);if(!1===slen)return!1;if(data.length!==slen+p.place)return!1;var s=data.slice(p.place,slen+p.place);if(0===r[0]){if(!(128&r[1]))return!1;r=r.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new BN(r),this.s=new BN(s),this.recoveryParam=null,!0},Signature.prototype.toDER=function(enc){var r=this.r.toArray(),s=this.s.toArray();for(128&r[0]&&(r=[0].concat(r)),128&s[0]&&(s=[0].concat(s)),r=rmPadding(r),s=rmPadding(s);!(s[0]||128&s[1]);)s=s.slice(1);var arr=[2];constructLength(arr,r.length),(arr=arr.concat(r)).push(2),constructLength(arr,s.length);var backHalf=arr.concat(s),res=[48];return constructLength(res,backHalf.length),res=res.concat(backHalf),utils.encode(res,enc)}},{"../utils":98,"bn.js":99}],94:[function(require,module,exports){"use strict";var hash=require("hash.js"),curves=require("../curves"),utils=require("../utils"),assert=utils.assert,parseBytes=utils.parseBytes,KeyPair=require("./key"),Signature=require("./signature");function EDDSA(curve){if(assert("ed25519"===curve,"only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(curve);curve=curves[curve].curve,this.curve=curve,this.g=curve.g,this.g.precompute(curve.n.bitLength()+1),this.pointClass=curve.point().constructor,this.encodingLength=Math.ceil(curve.n.bitLength()/8),this.hash=hash.sha512}module.exports=EDDSA,EDDSA.prototype.sign=function(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret),r=this.hashInt(key.messagePrefix(),message),R=this.g.mul(r),Rencoded=this.encodePoint(R),s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv()),S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})},EDDSA.prototype.verify=function(message,sig,pub){message=parseBytes(message),sig=this.makeSignature(sig);var key=this.keyFromPublic(pub),h=this.hashInt(sig.Rencoded(),key.pubBytes(),message),SG=this.g.mul(sig.S());return sig.R().add(key.pub().mul(h)).eq(SG)},EDDSA.prototype.hashInt=function(){for(var hash=this.hash(),i=0;i(ws>>1)-1?(ws>>1)-mod:mod,k.isubn(z)):z=0,naf[i]=z,k.iushrn(1)}return naf},utils.getJSF=function(k1,k2){var jsf=[[],[]];k1=k1.clone(),k2=k2.clone();for(var m8,d1=0,d2=0;k1.cmpn(-d1)>0||k2.cmpn(-d2)>0;){var u1,u2,m14=k1.andln(3)+d1&3,m24=k2.andln(3)+d2&3;3===m14&&(m14=-1),3===m24&&(m24=-1),u1=0==(1&m14)?0:3!==(m8=k1.andln(7)+d1&7)&&5!==m8||2!==m24?m14:-m14,jsf[0].push(u1),u2=0==(1&m24)?0:3!==(m8=k2.andln(7)+d2&7)&&5!==m8||2!==m14?m24:-m24,jsf[1].push(u2),2*d1===u1+1&&(d1=1-d1),2*d2===u2+1&&(d2=1-d2),k1.iushrn(1),k2.iushrn(1)}return jsf},utils.cachedProperty=function(obj,name,computer){var key="_"+name;obj.prototype[name]=function(){return void 0!==this[key]?this[key]:this[key]=computer.call(this)}},utils.parseBytes=function(bytes){return"string"==typeof bytes?utils.toArray(bytes,"hex"):bytes},utils.intFromLE=function(bytes){return new BN(bytes,"hex","le")}},{"bn.js":99,"minimalistic-assert":137,"minimalistic-crypto-utils":138}],99:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{buffer:20,dup:16}],100:[function(require,module,exports){module.exports={name:"elliptic",version:"6.5.4",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}},{}],101:[function(require,module,exports){"use strict";var ReflectOwnKeys,R="object"==typeof Reflect?Reflect:null,ReflectApply=R&&"function"==typeof R.apply?R.apply:function(target,receiver,args){return Function.prototype.apply.call(target,receiver,args)};ReflectOwnKeys=R&&"function"==typeof R.ownKeys?R.ownKeys:Object.getOwnPropertySymbols?function(target){return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))}:function(target){return Object.getOwnPropertyNames(target)};var NumberIsNaN=Number.isNaN||function(value){return value!=value};function EventEmitter(){EventEmitter.init.call(this)}module.exports=EventEmitter,module.exports.once=function(emitter,name){return new Promise((function(resolve,reject){function errorListener(err){emitter.removeListener(name,resolver),reject(err)}function resolver(){"function"==typeof emitter.removeListener&&emitter.removeListener("error",errorListener),resolve([].slice.call(arguments))}eventTargetAgnosticAddListener(emitter,name,resolver,{once:!0}),"error"!==name&&function(emitter,handler,flags){"function"==typeof emitter.on&&eventTargetAgnosticAddListener(emitter,"error",handler,flags)}(emitter,errorListener,{once:!0})}))},EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(listener){if("function"!=typeof listener)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof listener)}function _getMaxListeners(that){return void 0===that._maxListeners?EventEmitter.defaultMaxListeners:that._maxListeners}function _addListener(target,type,listener,prepend){var m,events,existing,warning;if(checkListener(listener),void 0===(events=target._events)?(events=target._events=Object.create(null),target._eventsCount=0):(void 0!==events.newListener&&(target.emit("newListener",type,listener.listener?listener.listener:listener),events=target._events),existing=events[type]),void 0===existing)existing=events[type]=listener,++target._eventsCount;else if("function"==typeof existing?existing=events[type]=prepend?[listener,existing]:[existing,listener]:prepend?existing.unshift(listener):existing.push(listener),(m=_getMaxListeners(target))>0&&existing.length>m&&!existing.warned){existing.warned=!0;var w=new Error("Possible EventEmitter memory leak detected. "+existing.length+" "+String(type)+" listeners added. Use emitter.setMaxListeners() to increase limit");w.name="MaxListenersExceededWarning",w.emitter=target,w.type=type,w.count=existing.length,warning=w,console&&console.warn&&console.warn(warning)}return target}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(target,type,listener){var state={fired:!1,wrapFn:void 0,target:target,type:type,listener:listener},wrapped=onceWrapper.bind(state);return wrapped.listener=listener,state.wrapFn=wrapped,wrapped}function _listeners(target,type,unwrap){var events=target._events;if(void 0===events)return[];var evlistener=events[type];return void 0===evlistener?[]:"function"==typeof evlistener?unwrap?[evlistener.listener||evlistener]:[evlistener]:unwrap?function(arr){for(var ret=new Array(arr.length),i=0;i0&&(er=args[0]),er instanceof Error)throw er;var err=new Error("Unhandled error."+(er?" ("+er.message+")":""));throw err.context=er,err}var handler=events[type];if(void 0===handler)return!1;if("function"==typeof handler)ReflectApply(handler,this,args);else{var len=handler.length,listeners=arrayClone(handler,len);for(i=0;i=0;i--)if(list[i]===listener||list[i].listener===listener){originalListener=list[i].listener,position=i;break}if(position<0)return this;0===position?list.shift():function(list,index){for(;index+1=0;i--)this.removeListener(type,listeners[i]);return this},EventEmitter.prototype.listeners=function(type){return _listeners(this,type,!0)},EventEmitter.prototype.rawListeners=function(type){return _listeners(this,type,!1)},EventEmitter.listenerCount=function(emitter,type){return"function"==typeof emitter.listenerCount?emitter.listenerCount(type):listenerCount.call(emitter,type)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]}},{}],102:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer,MD5=require("md5.js");module.exports=function(password,salt,keyBits,ivLen){if(Buffer.isBuffer(password)||(password=Buffer.from(password,"binary")),salt&&(Buffer.isBuffer(salt)||(salt=Buffer.from(salt,"binary")),8!==salt.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var keyLen=keyBits/8,key=Buffer.alloc(keyLen),iv=Buffer.alloc(ivLen||0),tmp=Buffer.alloc(0);keyLen>0||ivLen>0;){var hash=new MD5;hash.update(tmp),hash.update(password),salt&&hash.update(salt),tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length),tmp.copy(key,keyStart,0,used),keyLen-=used}if(used0){var ivStart=iv.length-ivLen,length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length),ivLen-=length}}return tmp.fill(0),{key:key,iv:iv}}},{"md5.js":134,"safe-buffer":162}],103:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,Transform=require("readable-stream").Transform;function HashBase(blockSize){Transform.call(this),this._block=Buffer.allocUnsafe(blockSize),this._blockSize=blockSize,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}require("inherits")(HashBase,Transform),HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)},HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)},HashBase.prototype.update=function(data,encoding){if(function(val,prefix){if(!Buffer.isBuffer(val)&&"string"!=typeof val)throw new TypeError(prefix+" must be a string or a buffer")}(data,"Data"),this._finalized)throw new Error("Digest already called");Buffer.isBuffer(data)||(data=Buffer.from(data,encoding));for(var block=this._block,offset=0;this._blockOffset+data.length-offset>=this._blockSize;){for(var i=this._blockOffset;i0;++j)this._length[j]+=carry,(carry=this._length[j]/4294967296|0)>0&&(this._length[j]-=4294967296*carry);return this},HashBase.prototype._update=function(){throw new Error("_update is not implemented")},HashBase.prototype.digest=function(encoding){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var digest=this._digest();void 0!==encoding&&(digest=digest.toString(encoding)),this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return digest},HashBase.prototype._digest=function(){throw new Error("_digest is not implemented")},module.exports=HashBase},{inherits:133,"readable-stream":118,"safe-buffer":162}],104:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48}],105:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{"./_stream_readable":107,"./_stream_writable":109,_process:151,dup:49,inherits:133}],106:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{"./_stream_transform":108,dup:50,inherits:133}],107:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,"./internal/streams/async_iterator":110,"./internal/streams/buffer_list":111,"./internal/streams/destroy":112,"./internal/streams/from":114,"./internal/streams/state":116,"./internal/streams/stream":117,_process:151,buffer:64,dup:51,events:101,inherits:133,"string_decoder/":187,util:20}],108:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,dup:52,inherits:133}],109:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{"../errors":104,"./_stream_duplex":105,"./internal/streams/destroy":112,"./internal/streams/state":116,"./internal/streams/stream":117,_process:151,buffer:64,dup:53,inherits:133,"util-deprecate":188}],110:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{"./end-of-stream":113,_process:151,dup:54}],111:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{buffer:64,dup:55,util:20}],112:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{_process:151,dup:56}],113:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{"../../../errors":104,dup:57}],114:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],115:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{"../../../errors":104,"./end-of-stream":113,dup:59}],116:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{"../../../errors":104,dup:60}],117:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61,events:101}],118:[function(require,module,exports){arguments[4][62][0].apply(exports,arguments)},{"./lib/_stream_duplex.js":105,"./lib/_stream_passthrough.js":106,"./lib/_stream_readable.js":107,"./lib/_stream_transform.js":108,"./lib/_stream_writable.js":109,"./lib/internal/streams/end-of-stream.js":113,"./lib/internal/streams/pipeline.js":115,dup:62}],119:[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils"),hash.common=require("./hash/common"),hash.sha=require("./hash/sha"),hash.ripemd=require("./hash/ripemd"),hash.hmac=require("./hash/hmac"),hash.sha1=hash.sha.sha1,hash.sha256=hash.sha.sha256,hash.sha224=hash.sha.sha224,hash.sha384=hash.sha.sha384,hash.sha512=hash.sha.sha512,hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":120,"./hash/hmac":121,"./hash/ripemd":122,"./hash/sha":123,"./hash/utils":130}],120:[function(require,module,exports){"use strict";var utils=require("./utils"),assert=require("minimalistic-assert");function BlockHash(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}exports.BlockHash=BlockHash,BlockHash.prototype.update=function(msg,enc){if(msg=utils.toArray(msg,enc),this.pending?this.pending=this.pending.concat(msg):this.pending=msg,this.pendingTotal+=msg.length,this.pending.length>=this._delta8){var r=(msg=this.pending).length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length),0===this.pending.length&&(this.pending=null),msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&255,res[i++]=len>>>16&255,res[i++]=len>>>8&255,res[i++]=255&len}else for(res[i++]=255&len,res[i++]=len>>>8&255,res[i++]=len>>>16&255,res[i++]=len>>>24&255,res[i++]=0,res[i++]=0,res[i++]=0,res[i++]=0,t=8;tthis.blockSize&&(key=(new this.Hash).update(key).digest()),assert(key.length<=this.blockSize);for(var i=key.length;i>>3},exports.g1_256=function(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}},{"../utils":130}],130:[function(require,module,exports){"use strict";var assert=require("minimalistic-assert"),inherits=require("inherits");function isSurrogatePair(msg,i){return 55296==(64512&msg.charCodeAt(i))&&(!(i<0||i+1>=msg.length)&&56320==(64512&msg.charCodeAt(i+1)))}function htonl(w){return(w>>>24|w>>>8&65280|w<<8&16711680|(255&w)<<24)>>>0}function zero2(word){return 1===word.length?"0"+word:word}function zero8(word){return 7===word.length?"0"+word:6===word.length?"00"+word:5===word.length?"000"+word:4===word.length?"0000"+word:3===word.length?"00000"+word:2===word.length?"000000"+word:1===word.length?"0000000"+word:word}exports.inherits=inherits,exports.toArray=function(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if("string"==typeof msg)if(enc){if("hex"===enc)for((msg=msg.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(msg="0"+msg),i=0;i>6|192,res[p++]=63&c|128):isSurrogatePair(msg,i)?(c=65536+((1023&c)<<10)+(1023&msg.charCodeAt(++i)),res[p++]=c>>18|240,res[p++]=c>>12&63|128,res[p++]=c>>6&63|128,res[p++]=63&c|128):(res[p++]=c>>12|224,res[p++]=c>>6&63|128,res[p++]=63&c|128)}else for(i=0;i>>0}return res},exports.split32=function(msg,endian){for(var res=new Array(4*msg.length),i=0,k=0;i>>24,res[k+1]=m>>>16&255,res[k+2]=m>>>8&255,res[k+3]=255&m):(res[k+3]=m>>>24,res[k+2]=m>>>16&255,res[k+1]=m>>>8&255,res[k]=255&m)}return res},exports.rotr32=function(w,b){return w>>>b|w<<32-b},exports.rotl32=function(w,b){return w<>>32-b},exports.sum32=function(a,b){return a+b>>>0},exports.sum32_3=function(a,b,c){return a+b+c>>>0},exports.sum32_4=function(a,b,c,d){return a+b+c+d>>>0},exports.sum32_5=function(a,b,c,d,e){return a+b+c+d+e>>>0},exports.sum64=function(buf,pos,ah,al){var bh=buf[pos],lo=al+buf[pos+1]>>>0,hi=(lo>>0,buf[pos+1]=lo},exports.sum64_hi=function(ah,al,bh,bl){return(al+bl>>>0>>0},exports.sum64_lo=function(ah,al,bh,bl){return al+bl>>>0},exports.sum64_4_hi=function(ah,al,bh,bl,ch,cl,dh,dl){var carry=0,lo=al;return carry+=(lo=lo+bl>>>0)>>0)>>0)>>0},exports.sum64_4_lo=function(ah,al,bh,bl,ch,cl,dh,dl){return al+bl+cl+dl>>>0},exports.sum64_5_hi=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0,lo=al;return carry+=(lo=lo+bl>>>0)>>0)>>0)>>0)>>0},exports.sum64_5_lo=function(ah,al,bh,bl,ch,cl,dh,dl,eh,el){return al+bl+cl+dl+el>>>0},exports.rotr64_hi=function(ah,al,num){return(al<<32-num|ah>>>num)>>>0},exports.rotr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0},exports.shr64_hi=function(ah,al,num){return ah>>>num},exports.shr64_lo=function(ah,al,num){return(ah<<32-num|al>>>num)>>>0}},{inherits:133,"minimalistic-assert":137}],131:[function(require,module,exports){"use strict";var hash=require("hash.js"),utils=require("minimalistic-crypto-utils"),assert=require("minimalistic-assert");function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash,this.predResist=!!options.predResist,this.outLen=this.hash.outSize,this.minEntropy=options.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||"hex"),nonce=utils.toArray(options.nonce,options.nonceEnc||"hex"),pers=utils.toArray(options.pers,options.persEnc||"hex");assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(entropy,nonce,pers)}module.exports=HmacDRBG,HmacDRBG.prototype._init=function(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(entropy.concat(add||[])),this._reseed=1},HmacDRBG.prototype.generate=function(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof enc&&(addEnc=add,add=enc,enc=null),add&&(add=utils.toArray(add,addEnc||"hex"),this._update(add));for(var temp=[];temp.length */ +exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=8*nBytes-mLen-1,eMax=(1<>1,nBits=-7,i=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i];for(i+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;nBits>0;e=256*e+buffer[offset+i],i+=d,nBits-=8);for(m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;nBits>0;m=256*m+buffer[offset+i],i+=d,nBits-=8);if(0===e)e=1-eBias;else{if(e===eMax)return m?NaN:1/0*(s?-1:1);m+=Math.pow(2,mLen),e-=eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)},exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=8*nBytes-mLen-1,eMax=(1<>1,rt=23===mLen?Math.pow(2,-24)-Math.pow(2,-77):0,i=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||0===value&&1/value<0?1:0;for(value=Math.abs(value),isNaN(value)||value===1/0?(m=isNaN(value)?1:0,e=eMax):(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1&&(e--,c*=2),(value+=e+eBias>=1?rt/c:rt*Math.pow(2,1-eBias))*c>=2&&(e++,c/=2),e+eBias>=eMax?(m=0,e=eMax):e+eBias>=1?(m=(value*c-1)*Math.pow(2,mLen),e+=eBias):(m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0));mLen>=8;buffer[offset+i]=255&m,i+=d,m/=256,mLen-=8);for(e=e<0;buffer[offset+i]=255&e,i+=d,e/=256,eLen-=8);buffer[offset+i-d]|=128*s}},{}],133:[function(require,module,exports){"function"==typeof Object.create?module.exports=function(ctor,superCtor){superCtor&&(ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}}))}:module.exports=function(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}}},{}],134:[function(require,module,exports){"use strict";var inherits=require("inherits"),HashBase=require("hash-base"),Buffer=require("safe-buffer").Buffer,ARRAY16=new Array(16);function MD5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function rotl(x,n){return x<>>32-n}function fnF(a,b,c,d,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+b|0}function fnG(a,b,c,d,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+b|0}function fnH(a,b,c,d,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+b|0}function fnI(a,b,c,d,m,k,s){return rotl(a+(c^(b|~d))+m+k|0,s)+b|0}inherits(MD5,HashBase),MD5.prototype._update=function(){for(var M=ARRAY16,i=0;i<16;++i)M[i]=this._block.readInt32LE(4*i);var a=this._a,b=this._b,c=this._c,d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7),d=fnF(d,a,b,c,M[1],3905402710,12),c=fnF(c,d,a,b,M[2],606105819,17),b=fnF(b,c,d,a,M[3],3250441966,22),a=fnF(a,b,c,d,M[4],4118548399,7),d=fnF(d,a,b,c,M[5],1200080426,12),c=fnF(c,d,a,b,M[6],2821735955,17),b=fnF(b,c,d,a,M[7],4249261313,22),a=fnF(a,b,c,d,M[8],1770035416,7),d=fnF(d,a,b,c,M[9],2336552879,12),c=fnF(c,d,a,b,M[10],4294925233,17),b=fnF(b,c,d,a,M[11],2304563134,22),a=fnF(a,b,c,d,M[12],1804603682,7),d=fnF(d,a,b,c,M[13],4254626195,12),c=fnF(c,d,a,b,M[14],2792965006,17),a=fnG(a,b=fnF(b,c,d,a,M[15],1236535329,22),c,d,M[1],4129170786,5),d=fnG(d,a,b,c,M[6],3225465664,9),c=fnG(c,d,a,b,M[11],643717713,14),b=fnG(b,c,d,a,M[0],3921069994,20),a=fnG(a,b,c,d,M[5],3593408605,5),d=fnG(d,a,b,c,M[10],38016083,9),c=fnG(c,d,a,b,M[15],3634488961,14),b=fnG(b,c,d,a,M[4],3889429448,20),a=fnG(a,b,c,d,M[9],568446438,5),d=fnG(d,a,b,c,M[14],3275163606,9),c=fnG(c,d,a,b,M[3],4107603335,14),b=fnG(b,c,d,a,M[8],1163531501,20),a=fnG(a,b,c,d,M[13],2850285829,5),d=fnG(d,a,b,c,M[2],4243563512,9),c=fnG(c,d,a,b,M[7],1735328473,14),a=fnH(a,b=fnG(b,c,d,a,M[12],2368359562,20),c,d,M[5],4294588738,4),d=fnH(d,a,b,c,M[8],2272392833,11),c=fnH(c,d,a,b,M[11],1839030562,16),b=fnH(b,c,d,a,M[14],4259657740,23),a=fnH(a,b,c,d,M[1],2763975236,4),d=fnH(d,a,b,c,M[4],1272893353,11),c=fnH(c,d,a,b,M[7],4139469664,16),b=fnH(b,c,d,a,M[10],3200236656,23),a=fnH(a,b,c,d,M[13],681279174,4),d=fnH(d,a,b,c,M[0],3936430074,11),c=fnH(c,d,a,b,M[3],3572445317,16),b=fnH(b,c,d,a,M[6],76029189,23),a=fnH(a,b,c,d,M[9],3654602809,4),d=fnH(d,a,b,c,M[12],3873151461,11),c=fnH(c,d,a,b,M[15],530742520,16),a=fnI(a,b=fnH(b,c,d,a,M[2],3299628645,23),c,d,M[0],4096336452,6),d=fnI(d,a,b,c,M[7],1126891415,10),c=fnI(c,d,a,b,M[14],2878612391,15),b=fnI(b,c,d,a,M[5],4237533241,21),a=fnI(a,b,c,d,M[12],1700485571,6),d=fnI(d,a,b,c,M[3],2399980690,10),c=fnI(c,d,a,b,M[10],4293915773,15),b=fnI(b,c,d,a,M[1],2240044497,21),a=fnI(a,b,c,d,M[8],1873313359,6),d=fnI(d,a,b,c,M[15],4264355552,10),c=fnI(c,d,a,b,M[6],2734768916,15),b=fnI(b,c,d,a,M[13],1309151649,21),a=fnI(a,b,c,d,M[4],4149444226,6),d=fnI(d,a,b,c,M[11],3174756917,10),c=fnI(c,d,a,b,M[2],718787259,15),b=fnI(b,c,d,a,M[9],3951481745,21),this._a=this._a+a|0,this._b=this._b+b|0,this._c=this._c+c|0,this._d=this._d+d|0},MD5.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer.allocUnsafe(16);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer},module.exports=MD5},{"hash-base":103,inherits:133,"safe-buffer":162}],135:[function(require,module,exports){var bn=require("bn.js"),brorand=require("brorand");function MillerRabin(rand){this.rand=rand||new brorand.Rand}module.exports=MillerRabin,MillerRabin.create=function(rand){return new MillerRabin(rand)},MillerRabin.prototype._randbelow=function(n){var len=n.bitLength(),min_bytes=Math.ceil(len/8);do{var a=new bn(this.rand.generate(min_bytes))}while(a.cmp(n)>=0);return a},MillerRabin.prototype._randrange=function(start,stop){var size=stop.sub(start);return start.add(this._randbelow(size))},MillerRabin.prototype.test=function(n,k,cb){var len=n.bitLength(),red=bn.mont(n),rone=new bn(1).toRed(red);k||(k=Math.max(1,len/48|0));for(var n1=n.subn(1),s=0;!n1.testn(s);s++);for(var d=n.shrn(s),rn1=n1.toRed(red);k>0;k--){var a=this._randrange(new bn(2),n1);cb&&cb(a);var x=a.toRed(red).redPow(d);if(0!==x.cmp(rone)&&0!==x.cmp(rn1)){for(var i=1;i0;k--){var a=this._randrange(new bn(2),n1),g=n.gcd(a);if(0!==g.cmpn(1))return g;var x=a.toRed(red).redPow(d);if(0!==x.cmp(rone)&&0!==x.cmp(rn1)){for(var i=1;i>8,lo=255&c;hi?res.push(hi,lo):res.push(lo)}return res},utils.zero2=zero2,utils.toHex=toHex,utils.encode=function(arr,enc){return"hex"===enc?toHex(arr):arr}},{}],139:[function(require,module,exports){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],140:[function(require,module,exports){"use strict";var asn1=require("asn1.js");exports.certificate=require("./certificate");var RSAPrivateKey=asn1.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));exports.RSAPublicKey=RSAPublicKey;var PublicKey=asn1.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())}));exports.PublicKey=PublicKey;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),PrivateKeyInfo=asn1.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())}));exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));exports.DSAPrivateKey=DSAPrivateKey,exports.DSAparam=asn1.define("DSAparam",(function(){this.int()}));var ECPrivateKey=asn1.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())}));exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));exports.signature=asn1.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},{"./certificate":141,"asn1.js":2}],141:[function(require,module,exports){"use strict";var asn=require("asn1.js"),Time=asn.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),AttributeTypeValue=asn.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),AlgorithmIdentifier=asn.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),SubjectPublicKeyInfo=asn.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())})),RelativeDistinguishedName=asn.define("RelativeDistinguishedName",(function(){this.setof(AttributeTypeValue)})),RDNSequence=asn.define("RDNSequence",(function(){this.seqof(RelativeDistinguishedName)})),Name=asn.define("Name",(function(){this.choice({rdnSequence:this.use(RDNSequence)})})),Validity=asn.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(Time),this.key("notAfter").use(Time))})),Extension=asn.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),TBSCertificate=asn.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(AlgorithmIdentifier),this.key("issuer").use(Name),this.key("validity").use(Validity),this.key("subject").use(Name),this.key("subjectPublicKeyInfo").use(SubjectPublicKeyInfo),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(Extension).optional())})),X509Certificate=asn.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(TBSCertificate),this.key("signatureAlgorithm").use(AlgorithmIdentifier),this.key("signatureValue").bitstr())}));module.exports=X509Certificate},{"asn1.js":2}],142:[function(require,module,exports){var findProc=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,startRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,fullRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,evp=require("evp_bytestokey"),ciphers=require("browserify-aes"),Buffer=require("safe-buffer").Buffer;module.exports=function(okey,password){var decrypted,key=okey.toString(),match=key.match(findProc);if(match){var suite="aes"+match[1],iv=Buffer.from(match[2],"hex"),cipherText=Buffer.from(match[3].replace(/[\r\n]/g,""),"base64"),cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key,out=[],cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText)),out.push(cipher.final()),decrypted=Buffer.concat(out)}else{var match2=key.match(fullRegex);decrypted=Buffer.from(match2[2].replace(/[\r\n]/g,""),"base64")}return{tag:key.match(startRegex)[1],data:decrypted}}},{"browserify-aes":23,evp_bytestokey:102,"safe-buffer":162}],143:[function(require,module,exports){var asn1=require("./asn1"),aesid=require("./aesid.json"),fixProc=require("./fixProc"),ciphers=require("browserify-aes"),compat=require("pbkdf2"),Buffer=require("safe-buffer").Buffer;function parseKeys(buffer){var password;"object"!=typeof buffer||Buffer.isBuffer(buffer)||(password=buffer.passphrase,buffer=buffer.key),"string"==typeof buffer&&(buffer=Buffer.from(buffer));var subtype,ndata,stripped=fixProc(buffer,password),type=stripped.tag,data=stripped.data;switch(type){case"CERTIFICATE":ndata=asn1.certificate.decode(data,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(ndata||(ndata=asn1.PublicKey.decode(data,"der")),subtype=ndata.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return ndata.subjectPrivateKey=ndata.subjectPublicKey,{type:"ec",data:ndata};case"1.2.840.10040.4.1":return ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der"),{type:"dsa",data:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}case"ENCRYPTED PRIVATE KEY":data=function(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt,iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10),algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")],iv=data.algorithm.decrypt.cipher.iv,cipherText=data.subjectPrivateKey,keylen=parseInt(algo.split("-")[1],10)/8,key=compat.pbkdf2Sync(password,salt,iters,keylen,"sha1"),cipher=ciphers.createDecipheriv(algo,key,iv),out=[];return out.push(cipher.update(cipherText)),out.push(cipher.final()),Buffer.concat(out)}(data=asn1.EncryptedPrivateKey.decode(data,"der"),password);case"PRIVATE KEY":switch(subtype=(ndata=asn1.PrivateKey.decode(data,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der"),{type:"dsa",params:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":return{curve:(data=asn1.ECPrivateKey.decode(data,"der")).parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}module.exports=parseKeys,parseKeys.signature=asn1.signature},{"./aesid.json":139,"./asn1":140,"./fixProc":142,"browserify-aes":23,pbkdf2:145,"safe-buffer":162}],144:[function(require,module,exports){(function(process){(function(){"use strict";function assertPath(path){if("string"!=typeof path)throw new TypeError("Path must be a string. Received "+JSON.stringify(path))}function normalizeStringPosix(path,allowAboveRoot){for(var code,res="",lastSegmentLength=0,lastSlash=-1,dots=0,i=0;i<=path.length;++i){if(i2){var lastSlashIndex=res.lastIndexOf("/");if(lastSlashIndex!==res.length-1){-1===lastSlashIndex?(res="",lastSegmentLength=0):lastSegmentLength=(res=res.slice(0,lastSlashIndex)).length-1-res.lastIndexOf("/"),lastSlash=i,dots=0;continue}}else if(2===res.length||1===res.length){res="",lastSegmentLength=0,lastSlash=i,dots=0;continue}allowAboveRoot&&(res.length>0?res+="/..":res="..",lastSegmentLength=2)}else res.length>0?res+="/"+path.slice(lastSlash+1,i):res=path.slice(lastSlash+1,i),lastSegmentLength=i-lastSlash-1;lastSlash=i,dots=0}else 46===code&&-1!==dots?++dots:dots=-1}return res}var posix={resolve:function(){for(var cwd,resolvedPath="",resolvedAbsolute=!1,i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path;i>=0?path=arguments[i]:(void 0===cwd&&(cwd=process.cwd()),path=cwd),assertPath(path),0!==path.length&&(resolvedPath=path+"/"+resolvedPath,resolvedAbsolute=47===path.charCodeAt(0))}return resolvedPath=normalizeStringPosix(resolvedPath,!resolvedAbsolute),resolvedAbsolute?resolvedPath.length>0?"/"+resolvedPath:"/":resolvedPath.length>0?resolvedPath:"."},normalize:function(path){if(assertPath(path),0===path.length)return".";var isAbsolute=47===path.charCodeAt(0),trailingSeparator=47===path.charCodeAt(path.length-1);return 0!==(path=normalizeStringPosix(path,!isAbsolute)).length||isAbsolute||(path="."),path.length>0&&trailingSeparator&&(path+="/"),isAbsolute?"/"+path:path},isAbsolute:function(path){return assertPath(path),path.length>0&&47===path.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var joined,i=0;i0&&(void 0===joined?joined=arg:joined+="/"+arg)}return void 0===joined?".":posix.normalize(joined)},relative:function(from,to){if(assertPath(from),assertPath(to),from===to)return"";if((from=posix.resolve(from))===(to=posix.resolve(to)))return"";for(var fromStart=1;fromStartlength){if(47===to.charCodeAt(toStart+i))return to.slice(toStart+i+1);if(0===i)return to.slice(toStart+i)}else fromLen>length&&(47===from.charCodeAt(fromStart+i)?lastCommonSep=i:0===i&&(lastCommonSep=0));break}var fromCode=from.charCodeAt(fromStart+i);if(fromCode!==to.charCodeAt(toStart+i))break;47===fromCode&&(lastCommonSep=i)}var out="";for(i=fromStart+lastCommonSep+1;i<=fromEnd;++i)i!==fromEnd&&47!==from.charCodeAt(i)||(0===out.length?out+="..":out+="/..");return out.length>0?out+to.slice(toStart+lastCommonSep):(toStart+=lastCommonSep,47===to.charCodeAt(toStart)&&++toStart,to.slice(toStart))},_makeLong:function(path){return path},dirname:function(path){if(assertPath(path),0===path.length)return".";for(var code=path.charCodeAt(0),hasRoot=47===code,end=-1,matchedSlash=!0,i=path.length-1;i>=1;--i)if(47===(code=path.charCodeAt(i))){if(!matchedSlash){end=i;break}}else matchedSlash=!1;return-1===end?hasRoot?"/":".":hasRoot&&1===end?"//":path.slice(0,end)},basename:function(path,ext){if(void 0!==ext&&"string"!=typeof ext)throw new TypeError('"ext" argument must be a string');assertPath(path);var i,start=0,end=-1,matchedSlash=!0;if(void 0!==ext&&ext.length>0&&ext.length<=path.length){if(ext.length===path.length&&ext===path)return"";var extIdx=ext.length-1,firstNonSlashEnd=-1;for(i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(47===code){if(!matchedSlash){start=i+1;break}}else-1===firstNonSlashEnd&&(matchedSlash=!1,firstNonSlashEnd=i+1),extIdx>=0&&(code===ext.charCodeAt(extIdx)?-1==--extIdx&&(end=i):(extIdx=-1,end=firstNonSlashEnd))}return start===end?end=firstNonSlashEnd:-1===end&&(end=path.length),path.slice(start,end)}for(i=path.length-1;i>=0;--i)if(47===path.charCodeAt(i)){if(!matchedSlash){start=i+1;break}}else-1===end&&(matchedSlash=!1,end=i+1);return-1===end?"":path.slice(start,end)},extname:function(path){assertPath(path);for(var startDot=-1,startPart=0,end=-1,matchedSlash=!0,preDotState=0,i=path.length-1;i>=0;--i){var code=path.charCodeAt(i);if(47!==code)-1===end&&(matchedSlash=!1,end=i+1),46===code?-1===startDot?startDot=i:1!==preDotState&&(preDotState=1):-1!==startDot&&(preDotState=-1);else if(!matchedSlash){startPart=i+1;break}}return-1===startDot||-1===end||0===preDotState||1===preDotState&&startDot===end-1&&startDot===startPart+1?"":path.slice(startDot,end)},format:function(pathObject){if(null===pathObject||"object"!=typeof pathObject)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof pathObject);return function(sep,pathObject){var dir=pathObject.dir||pathObject.root,base=pathObject.base||(pathObject.name||"")+(pathObject.ext||"");return dir?dir===pathObject.root?dir+base:dir+sep+base:base}("/",pathObject)},parse:function(path){assertPath(path);var ret={root:"",dir:"",base:"",ext:"",name:""};if(0===path.length)return ret;var start,code=path.charCodeAt(0),isAbsolute=47===code;isAbsolute?(ret.root="/",start=1):start=0;for(var startDot=-1,startPart=0,end=-1,matchedSlash=!0,i=path.length-1,preDotState=0;i>=start;--i)if(47!==(code=path.charCodeAt(i)))-1===end&&(matchedSlash=!1,end=i+1),46===code?-1===startDot?startDot=i:1!==preDotState&&(preDotState=1):-1!==startDot&&(preDotState=-1);else if(!matchedSlash){startPart=i+1;break}return-1===startDot||-1===end||0===preDotState||1===preDotState&&startDot===end-1&&startDot===startPart+1?-1!==end&&(ret.base=ret.name=0===startPart&&isAbsolute?path.slice(1,end):path.slice(startPart,end)):(0===startPart&&isAbsolute?(ret.name=path.slice(1,startDot),ret.base=path.slice(1,end)):(ret.name=path.slice(startPart,startDot),ret.base=path.slice(startPart,end)),ret.ext=path.slice(startDot,end)),startPart>0?ret.dir=path.slice(0,startPart-1):isAbsolute&&(ret.dir="/"),ret},sep:"/",delimiter:":",win32:null,posix:null};posix.posix=posix,module.exports=posix}).call(this)}).call(this,require("_process"))},{_process:151}],145:[function(require,module,exports){exports.pbkdf2=require("./lib/async"),exports.pbkdf2Sync=require("./lib/sync")},{"./lib/async":146,"./lib/sync":149}],146:[function(require,module,exports){(function(global){(function(){var ZERO_BUF,nextTick,Buffer=require("safe-buffer").Buffer,checkParameters=require("./precondition"),defaultEncoding=require("./default-encoding"),sync=require("./sync"),toBuffer=require("./to-buffer"),subtle=global.crypto&&global.crypto.subtle,toBrowser={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},checks=[];function getNextTick(){return nextTick||(nextTick=global.process&&global.process.nextTick?global.process.nextTick:global.queueMicrotask?global.queueMicrotask:global.setImmediate?global.setImmediate:global.setTimeout)}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey("raw",password,{name:"PBKDF2"},!1,["deriveBits"]).then((function(key){return subtle.deriveBits({name:"PBKDF2",salt:salt,iterations:iterations,hash:{name:algo}},key,length<<3)})).then((function(res){return Buffer.from(res)}))}module.exports=function(password,salt,iterations,keylen,digest,callback){"function"==typeof digest&&(callback=digest,digest=void 0);var algo=toBrowser[(digest=digest||"sha1").toLowerCase()];if(algo&&"function"==typeof global.Promise){if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,"Password"),salt=toBuffer(salt,defaultEncoding,"Salt"),"function"!=typeof callback)throw new Error("No callback provided to pbkdf2");!function(promise,callback){promise.then((function(out){getNextTick()((function(){callback(null,out)}))}),(function(e){getNextTick()((function(){callback(e)}))}))}(function(algo){if(global.process&&!global.process.browser)return Promise.resolve(!1);if(!subtle||!subtle.importKey||!subtle.deriveBits)return Promise.resolve(!1);if(void 0!==checks[algo])return checks[algo];var prom=browserPbkdf2(ZERO_BUF=ZERO_BUF||Buffer.alloc(8),ZERO_BUF,10,128,algo).then((function(){return!0})).catch((function(){return!1}));return checks[algo]=prom,prom}(algo).then((function(resp){return resp?browserPbkdf2(password,salt,iterations,keylen,algo):sync(password,salt,iterations,keylen,digest)})),callback)}else getNextTick()((function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){return callback(e)}callback(null,out)}))}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./default-encoding":147,"./precondition":148,"./sync":149,"./to-buffer":150,"safe-buffer":162}],147:[function(require,module,exports){(function(process,global){(function(){var defaultEncoding;if(global.process&&global.process.browser)defaultEncoding="utf-8";else if(global.process&&global.process.version){defaultEncoding=parseInt(process.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else defaultEncoding="utf-8";module.exports=defaultEncoding}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:151}],148:[function(require,module,exports){var MAX_ALLOC=Math.pow(2,30)-1;module.exports=function(iterations,keylen){if("number"!=typeof iterations)throw new TypeError("Iterations not a number");if(iterations<0)throw new TypeError("Bad iterations");if("number"!=typeof keylen)throw new TypeError("Key length not a number");if(keylen<0||keylen>MAX_ALLOC||keylen!=keylen)throw new TypeError("Bad key length")}},{}],149:[function(require,module,exports){var md5=require("create-hash/md5"),RIPEMD160=require("ripemd160"),sha=require("sha.js"),Buffer=require("safe-buffer").Buffer,checkParameters=require("./precondition"),defaultEncoding=require("./default-encoding"),toBuffer=require("./to-buffer"),ZEROS=Buffer.alloc(128),sizes={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function Hmac(alg,key,saltLen){var hash=function(alg){function shaFunc(data){return sha(alg).update(data).digest()}function rmd160Func(data){return(new RIPEMD160).update(data).digest()}return"rmd160"===alg||"ripemd160"===alg?rmd160Func:"md5"===alg?md5:shaFunc}(alg),blocksize="sha512"===alg||"sha384"===alg?128:64;key.length>blocksize?key=hash(key):key.length1)for(var i=1;ik||new BN(enc).cmp(key.modulus)>=0)throw new Error("decryption error");msg=reverse?withPublic(new BN(enc),key):crt(enc,key);var zBuffer=Buffer.alloc(k-msg.length);if(msg=Buffer.concat([zBuffer,msg],k),4===padding)return function(key,msg){var k=key.modulus.byteLength(),iHash=createHash("sha1").update(Buffer.alloc(0)).digest(),hLen=iHash.length;if(0!==msg[0])throw new Error("decryption error");var maskedSeed=msg.slice(1,hLen+1),maskedDb=msg.slice(hLen+1),seed=xor(maskedSeed,mgf(maskedDb,hLen)),db=xor(maskedDb,mgf(seed,k-hLen-1));if(function(a,b){a=Buffer.from(a),b=Buffer.from(b);var dif=0,len=a.length;a.length!==b.length&&(dif++,len=Math.min(a.length,b.length));var i=-1;for(;++i=msg.length){status++;break}var ps=msg.slice(2,i-1);("0002"!==p1.toString("hex")&&!reverse||"0001"!==p1.toString("hex")&&reverse)&&status++;ps.length<8&&status++;if(status)throw new Error("decryption error");return msg.slice(i)}(0,msg,reverse);if(3===padding)return msg;throw new Error("unknown padding")}},{"./mgf":153,"./withPublic":157,"./xor":158,"bn.js":154,"browserify-rsa":41,"create-hash":68,"parse-asn1":143,"safe-buffer":162}],156:[function(require,module,exports){var parseKeys=require("parse-asn1"),randomBytes=require("randombytes"),createHash=require("create-hash"),mgf=require("./mgf"),xor=require("./xor"),BN=require("bn.js"),withPublic=require("./withPublic"),crt=require("browserify-rsa"),Buffer=require("safe-buffer").Buffer;module.exports=function(publicKey,msg,reverse){var padding;padding=publicKey.padding?publicKey.padding:reverse?1:4;var paddedMsg,key=parseKeys(publicKey);if(4===padding)paddedMsg=function(key,msg){var k=key.modulus.byteLength(),mLen=msg.length,iHash=createHash("sha1").update(Buffer.alloc(0)).digest(),hLen=iHash.length,hLen2=2*hLen;if(mLen>k-hLen2-2)throw new Error("message too long");var ps=Buffer.alloc(k-mLen-hLen2-2),dblen=k-hLen-1,seed=randomBytes(hLen),maskedDb=xor(Buffer.concat([iHash,ps,Buffer.alloc(1,1),msg],dblen),mgf(seed,dblen)),maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer.concat([Buffer.alloc(1),maskedSeed,maskedDb],k))}(key,msg);else if(1===padding)paddedMsg=function(key,msg,reverse){var ps,mLen=msg.length,k=key.modulus.byteLength();if(mLen>k-11)throw new Error("message too long");ps=reverse?Buffer.alloc(k-mLen-3,255):function(len){var num,out=Buffer.allocUnsafe(len),i=0,cache=randomBytes(2*len),cur=0;for(;i=0)throw new Error("data too long for modulus")}return reverse?crt(paddedMsg,key):withPublic(paddedMsg,key)}},{"./mgf":153,"./withPublic":157,"./xor":158,"bn.js":154,"browserify-rsa":41,"create-hash":68,"parse-asn1":143,randombytes:159,"safe-buffer":162}],157:[function(require,module,exports){var BN=require("bn.js"),Buffer=require("safe-buffer").Buffer;module.exports=function(paddedMsg,key){return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray())}},{"bn.js":154,"safe-buffer":162}],158:[function(require,module,exports){module.exports=function(a,b){for(var len=a.length,i=-1;++i4294967295)throw new RangeError("requested too many random bytes");var bytes=Buffer.allocUnsafe(size);if(size>0)if(size>65536)for(var generated=0;generatedkMaxUint32||offset<0)throw new TypeError("offset must be a uint32");if(offset>kBufferMaxLength||offset>length)throw new RangeError("offset out of range")}function assertSize(size,offset,length){if("number"!=typeof size||size!=size)throw new TypeError("size must be a number");if(size>kMaxUint32||size<0)throw new TypeError("size must be a uint32");if(size+offset>length||size>kBufferMaxLength)throw new RangeError("buffer too small")}function actualFill(buf,offset,size,cb){if(process.browser){var ourBuf=buf.buffer,uint=new Uint8Array(ourBuf,offset,size);return crypto.getRandomValues(uint),cb?void process.nextTick((function(){cb(null,buf)})):buf}if(!cb)return randombytes(size).copy(buf,offset),buf;randombytes(size,(function(err,bytes){if(err)return cb(err);bytes.copy(buf,offset),cb(null,buf)}))}crypto&&crypto.getRandomValues||!process.browser?(exports.randomFill=function(buf,offset,size,cb){if(!(Buffer.isBuffer(buf)||buf instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof offset)cb=offset,offset=0,size=buf.length;else if("function"==typeof size)cb=size,size=buf.length-offset;else if("function"!=typeof cb)throw new TypeError('"cb" argument must be a function');return assertOffset(offset,buf.length),assertSize(size,offset,buf.length),actualFill(buf,offset,size,cb)},exports.randomFillSync=function(buf,offset,size){void 0===offset&&(offset=0);if(!(Buffer.isBuffer(buf)||buf instanceof global.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');assertOffset(offset,buf.length),void 0===size&&(size=buf.length-offset);return assertSize(size,offset,buf.length),actualFill(buf,offset,size)}):(exports.randomFill=oldBrowser,exports.randomFillSync=oldBrowser)}).call(this)}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:151,randombytes:159,"safe-buffer":162}],161:[function(require,module,exports){"use strict";var Buffer=require("buffer").Buffer,inherits=require("inherits"),HashBase=require("hash-base"),ARRAY16=new Array(16),zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],hl=[0,1518500249,1859775393,2400959708,2840853838],hr=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function rotl(x,n){return x<>>32-n}function fn1(a,b,c,d,e,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+e|0}function fn2(a,b,c,d,e,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+e|0}function fn3(a,b,c,d,e,m,k,s){return rotl(a+((b|~c)^d)+m+k|0,s)+e|0}function fn4(a,b,c,d,e,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+e|0}function fn5(a,b,c,d,e,m,k,s){return rotl(a+(b^(c|~d))+m+k|0,s)+e|0}inherits(RIPEMD160,HashBase),RIPEMD160.prototype._update=function(){for(var words=ARRAY16,j=0;j<16;++j)words[j]=this._block.readInt32LE(4*j);for(var al=0|this._a,bl=0|this._b,cl=0|this._c,dl=0|this._d,el=0|this._e,ar=0|this._a,br=0|this._b,cr=0|this._c,dr=0|this._d,er=0|this._e,i=0;i<80;i+=1){var tl,tr;i<16?(tl=fn1(al,bl,cl,dl,el,words[zl[i]],hl[0],sl[i]),tr=fn5(ar,br,cr,dr,er,words[zr[i]],hr[0],sr[i])):i<32?(tl=fn2(al,bl,cl,dl,el,words[zl[i]],hl[1],sl[i]),tr=fn4(ar,br,cr,dr,er,words[zr[i]],hr[1],sr[i])):i<48?(tl=fn3(al,bl,cl,dl,el,words[zl[i]],hl[2],sl[i]),tr=fn3(ar,br,cr,dr,er,words[zr[i]],hr[2],sr[i])):i<64?(tl=fn4(al,bl,cl,dl,el,words[zl[i]],hl[3],sl[i]),tr=fn2(ar,br,cr,dr,er,words[zr[i]],hr[3],sr[i])):(tl=fn5(al,bl,cl,dl,el,words[zl[i]],hl[4],sl[i]),tr=fn1(ar,br,cr,dr,er,words[zr[i]],hr[4],sr[i])),al=el,el=dl,dl=rotl(cl,10),cl=bl,bl=tl,ar=er,er=dr,dr=rotl(cr,10),cr=br,br=tr}var t=this._b+cl+dr|0;this._b=this._c+dl+er|0,this._c=this._d+el+ar|0,this._d=this._e+al+br|0,this._e=this._a+bl+cr|0,this._a=t},RIPEMD160.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer.alloc?Buffer.alloc(20):new Buffer(20);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer.writeInt32LE(this._e,16),buffer},module.exports=RIPEMD160},{buffer:64,"hash-base":103,inherits:133}],162:[function(require,module,exports){ +/*! safe-buffer. MIT License. Feross Aboukhadijeh */ +var buffer=require("buffer"),Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow?module.exports=buffer:(copyProps(buffer,exports),exports.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(Buffer.prototype),copyProps(Buffer,SafeBuffer),SafeBuffer.from=function(arg,encodingOrOffset,length){if("number"==typeof arg)throw new TypeError("Argument must not be a number");return Buffer(arg,encodingOrOffset,length)},SafeBuffer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError("Argument must be a number");var buf=Buffer(size);return void 0!==fill?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf},SafeBuffer.allocUnsafe=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return Buffer(size)},SafeBuffer.allocUnsafeSlow=function(size){if("number"!=typeof size)throw new TypeError("Argument must be a number");return buffer.SlowBuffer(size)}},{buffer:64}],163:[function(require,module,exports){(function(process){(function(){"use strict";var key,buffer=require("buffer"),Buffer=buffer.Buffer,safer={};for(key in buffer)buffer.hasOwnProperty(key)&&"SlowBuffer"!==key&&"Buffer"!==key&&(safer[key]=buffer[key]);var Safer=safer.Buffer={};for(key in Buffer)Buffer.hasOwnProperty(key)&&"allocUnsafe"!==key&&"allocUnsafeSlow"!==key&&(Safer[key]=Buffer[key]);if(safer.Buffer.prototype=Buffer.prototype,Safer.from&&Safer.from!==Uint8Array.from||(Safer.from=function(value,encodingOrOffset,length){if("number"==typeof value)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof value);if(value&&void 0===value.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof value);return Buffer(value,encodingOrOffset,length)}),Safer.alloc||(Safer.alloc=function(size,fill,encoding){if("number"!=typeof size)throw new TypeError('The "size" argument must be of type number. Received type '+typeof size);if(size<0||size>=2*(1<<30))throw new RangeError('The value "'+size+'" is invalid for option "size"');var buf=Buffer(size);return fill&&0!==fill.length?"string"==typeof encoding?buf.fill(fill,encoding):buf.fill(fill):buf.fill(0),buf}),!safer.kStringMaxLength)try{safer.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}safer.constants||(safer.constants={MAX_LENGTH:safer.kMaxLength},safer.kStringMaxLength&&(safer.constants.MAX_STRING_LENGTH=safer.kStringMaxLength)),module.exports=safer}).call(this)}).call(this,require("_process"))},{_process:151,buffer:64}],164:[function(require,module,exports){var Buffer=require("safe-buffer").Buffer;function Hash(blockSize,finalSize){this._block=Buffer.alloc(blockSize),this._finalSize=finalSize,this._blockSize=blockSize,this._len=0}Hash.prototype.update=function(data,enc){"string"==typeof data&&(enc=enc||"utf8",data=Buffer.from(data,enc));for(var block=this._block,blockSize=this._blockSize,length=data.length,accum=this._len,offset=0;offset=this._finalSize&&(this._update(this._block),this._block.fill(0));var bits=8*this._len;if(bits<=4294967295)this._block.writeUInt32BE(bits,this._blockSize-4);else{var lowBits=(4294967295&bits)>>>0,highBits=(bits-lowBits)/4294967296;this._block.writeUInt32BE(highBits,this._blockSize-8),this._block.writeUInt32BE(lowBits,this._blockSize-4)}this._update(this._block);var hash=this._hash();return enc?hash.toString(enc):hash},Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")},module.exports=Hash},{"safe-buffer":162}],165:[function(require,module,exports){(exports=module.exports=function(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm}).sha=require("./sha"),exports.sha1=require("./sha1"),exports.sha224=require("./sha224"),exports.sha256=require("./sha256"),exports.sha384=require("./sha384"),exports.sha512=require("./sha512")},{"./sha":166,"./sha1":167,"./sha224":168,"./sha256":169,"./sha384":170,"./sha512":171}],166:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}inherits(Sha,Hash),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(M){for(var num,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20),t=0|((num=a)<<5|num>>>27)+ft(s,b,c,d)+e+W[j]+K[s];e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha},{"./hash":164,inherits:133,"safe-buffer":162}],167:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1518500249,1859775393,-1894007588,-899497514],W=new Array(80);function Sha1(){this.init(),this._w=W,Hash.call(this,64,56)}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){return 0===s?b&c|~b&d:2===s?b&c|b&d|c&d:b^c^d}inherits(Sha1,Hash),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(M){for(var num,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<80;++i)W[i]=(num=W[i-3]^W[i-8]^W[i-14]^W[i-16])<<1|num>>>31;for(var j=0;j<80;++j){var s=~~(j/20),t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d,d=c,c=rotl30(b),b=a,a=t}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0},Sha1.prototype._hash=function(){var H=Buffer.allocUnsafe(20);return H.writeInt32BE(0|this._a,0),H.writeInt32BE(0|this._b,4),H.writeInt32BE(0|this._c,8),H.writeInt32BE(0|this._d,12),H.writeInt32BE(0|this._e,16),H},module.exports=Sha1},{"./hash":164,inherits:133,"safe-buffer":162}],168:[function(require,module,exports){var inherits=require("inherits"),Sha256=require("./sha256"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(64);function Sha224(){this.init(),this._w=W,Hash.call(this,64,56)}inherits(Sha224,Sha256),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var H=Buffer.allocUnsafe(28);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H},module.exports=Sha224},{"./hash":164,"./sha256":169,inherits:133,"safe-buffer":162}],169:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],W=new Array(64);function Sha256(){this.init(),this._w=W,Hash.call(this,64,56)}function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}inherits(Sha256,Hash),Sha256.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256.prototype._update=function(M){for(var x,W=this._w,a=0|this._a,b=0|this._b,c=0|this._c,d=0|this._d,e=0|this._e,f=0|this._f,g=0|this._g,h=0|this._h,i=0;i<16;++i)W[i]=M.readInt32BE(4*i);for(;i<64;++i)W[i]=0|(((x=W[i-2])>>>17|x<<15)^(x>>>19|x<<13)^x>>>10)+W[i-7]+gamma0(W[i-15])+W[i-16];for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0,T2=sigma0(a)+maj(a,b,c)|0;h=g,g=f,f=e,e=d+T1|0,d=c,c=b,b=a,a=T1+T2|0}this._a=a+this._a|0,this._b=b+this._b|0,this._c=c+this._c|0,this._d=d+this._d|0,this._e=e+this._e|0,this._f=f+this._f|0,this._g=g+this._g|0,this._h=h+this._h|0},Sha256.prototype._hash=function(){var H=Buffer.allocUnsafe(32);return H.writeInt32BE(this._a,0),H.writeInt32BE(this._b,4),H.writeInt32BE(this._c,8),H.writeInt32BE(this._d,12),H.writeInt32BE(this._e,16),H.writeInt32BE(this._f,20),H.writeInt32BE(this._g,24),H.writeInt32BE(this._h,28),H},module.exports=Sha256},{"./hash":164,inherits:133,"safe-buffer":162}],170:[function(require,module,exports){var inherits=require("inherits"),SHA512=require("./sha512"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,W=new Array(160);function Sha384(){this.init(),this._w=W,Hash.call(this,128,112)}inherits(Sha384,SHA512),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var H=Buffer.allocUnsafe(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),H},module.exports=Sha384},{"./hash":164,"./sha512":171,inherits:133,"safe-buffer":162}],171:[function(require,module,exports){var inherits=require("inherits"),Hash=require("./hash"),Buffer=require("safe-buffer").Buffer,K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],W=new Array(160);function Sha512(){this.init(),this._w=W,Hash.call(this,128,112)}function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0>>0?1:0}inherits(Sha512,Hash),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(M){for(var W=this._w,ah=0|this._ah,bh=0|this._bh,ch=0|this._ch,dh=0|this._dh,eh=0|this._eh,fh=0|this._fh,gh=0|this._gh,hh=0|this._hh,al=0|this._al,bl=0|this._bl,cl=0|this._cl,dl=0|this._dl,el=0|this._el,fl=0|this._fl,gl=0|this._gl,hl=0|this._hl,i=0;i<32;i+=2)W[i]=M.readInt32BE(4*i),W[i+1]=M.readInt32BE(4*i+4);for(;i<160;i+=2){var xh=W[i-30],xl=W[i-30+1],gamma0=Gamma0(xh,xl),gamma0l=Gamma0l(xl,xh),gamma1=Gamma1(xh=W[i-4],xl=W[i-4+1]),gamma1l=Gamma1l(xl,xh),Wi7h=W[i-14],Wi7l=W[i-14+1],Wi16h=W[i-32],Wi16l=W[i-32+1],Wil=gamma0l+Wi7l|0,Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wih=(Wih=Wih+gamma1+getCarry(Wil=Wil+gamma1l|0,gamma1l)|0)+Wi16h+getCarry(Wil=Wil+Wi16l|0,Wi16l)|0,W[i]=Wih,W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j],Wil=W[j+1];var majh=maj(ah,bh,ch),majl=maj(al,bl,cl),sigma0h=sigma0(ah,al),sigma0l=sigma0(al,ah),sigma1h=sigma1(eh,el),sigma1l=sigma1(el,eh),Kih=K[j],Kil=K[j+1],chh=Ch(eh,fh,gh),chl=Ch(el,fl,gl),t1l=hl+sigma1l|0,t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1h=(t1h=(t1h=t1h+chh+getCarry(t1l=t1l+chl|0,chl)|0)+Kih+getCarry(t1l=t1l+Kil|0,Kil)|0)+Wih+getCarry(t1l=t1l+Wil|0,Wil)|0;var t2l=sigma0l+majl|0,t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh,hl=gl,gh=fh,gl=fl,fh=eh,fl=el,eh=dh+t1h+getCarry(el=dl+t1l|0,dl)|0,dh=ch,dl=cl,ch=bh,cl=bl,bh=ah,bl=al,ah=t1h+t2h+getCarry(al=t1l+t2l|0,t1l)|0}this._al=this._al+al|0,this._bl=this._bl+bl|0,this._cl=this._cl+cl|0,this._dl=this._dl+dl|0,this._el=this._el+el|0,this._fl=this._fl+fl|0,this._gl=this._gl+gl|0,this._hl=this._hl+hl|0,this._ah=this._ah+ah+getCarry(this._al,al)|0,this._bh=this._bh+bh+getCarry(this._bl,bl)|0,this._ch=this._ch+ch+getCarry(this._cl,cl)|0,this._dh=this._dh+dh+getCarry(this._dl,dl)|0,this._eh=this._eh+eh+getCarry(this._el,el)|0,this._fh=this._fh+fh+getCarry(this._fl,fl)|0,this._gh=this._gh+gh+getCarry(this._gl,gl)|0,this._hh=this._hh+hh+getCarry(this._hl,hl)|0},Sha512.prototype._hash=function(){var H=Buffer.allocUnsafe(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset),H.writeInt32BE(l,offset+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),H},module.exports=Sha512},{"./hash":164,inherits:133,"safe-buffer":162}],172:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;function Stream(){EE.call(this)}require("inherits")(Stream,EE),Stream.Readable=require("readable-stream/lib/_stream_readable.js"),Stream.Writable=require("readable-stream/lib/_stream_writable.js"),Stream.Duplex=require("readable-stream/lib/_stream_duplex.js"),Stream.Transform=require("readable-stream/lib/_stream_transform.js"),Stream.PassThrough=require("readable-stream/lib/_stream_passthrough.js"),Stream.finished=require("readable-stream/lib/internal/streams/end-of-stream.js"),Stream.pipeline=require("readable-stream/lib/internal/streams/pipeline.js"),Stream.Stream=Stream,Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){dest.writable&&!1===dest.write(chunk)&&source.pause&&source.pause()}function ondrain(){source.readable&&source.resume&&source.resume()}source.on("data",ondata),dest.on("drain",ondrain),dest._isStdio||options&&!1===options.end||(source.on("end",onend),source.on("close",onclose));var didOnEnd=!1;function onend(){didOnEnd||(didOnEnd=!0,dest.end())}function onclose(){didOnEnd||(didOnEnd=!0,"function"==typeof dest.destroy&&dest.destroy())}function onerror(er){if(cleanup(),0===EE.listenerCount(this,"error"))throw er}function cleanup(){source.removeListener("data",ondata),dest.removeListener("drain",ondrain),source.removeListener("end",onend),source.removeListener("close",onclose),source.removeListener("error",onerror),dest.removeListener("error",onerror),source.removeListener("end",cleanup),source.removeListener("close",cleanup),dest.removeListener("close",cleanup)}return source.on("error",onerror),dest.on("error",onerror),source.on("end",cleanup),source.on("close",cleanup),dest.on("close",cleanup),dest.emit("pipe",source),dest}},{events:101,inherits:133,"readable-stream/lib/_stream_duplex.js":174,"readable-stream/lib/_stream_passthrough.js":175,"readable-stream/lib/_stream_readable.js":176,"readable-stream/lib/_stream_transform.js":177,"readable-stream/lib/_stream_writable.js":178,"readable-stream/lib/internal/streams/end-of-stream.js":182,"readable-stream/lib/internal/streams/pipeline.js":184}],173:[function(require,module,exports){arguments[4][48][0].apply(exports,arguments)},{dup:48}],174:[function(require,module,exports){arguments[4][49][0].apply(exports,arguments)},{"./_stream_readable":176,"./_stream_writable":178,_process:151,dup:49,inherits:133}],175:[function(require,module,exports){arguments[4][50][0].apply(exports,arguments)},{"./_stream_transform":177,dup:50,inherits:133}],176:[function(require,module,exports){arguments[4][51][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,"./internal/streams/async_iterator":179,"./internal/streams/buffer_list":180,"./internal/streams/destroy":181,"./internal/streams/from":183,"./internal/streams/state":185,"./internal/streams/stream":186,_process:151,buffer:64,dup:51,events:101,inherits:133,"string_decoder/":187,util:20}],177:[function(require,module,exports){arguments[4][52][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,dup:52,inherits:133}],178:[function(require,module,exports){arguments[4][53][0].apply(exports,arguments)},{"../errors":173,"./_stream_duplex":174,"./internal/streams/destroy":181,"./internal/streams/state":185,"./internal/streams/stream":186,_process:151,buffer:64,dup:53,inherits:133,"util-deprecate":188}],179:[function(require,module,exports){arguments[4][54][0].apply(exports,arguments)},{"./end-of-stream":182,_process:151,dup:54}],180:[function(require,module,exports){arguments[4][55][0].apply(exports,arguments)},{buffer:64,dup:55,util:20}],181:[function(require,module,exports){arguments[4][56][0].apply(exports,arguments)},{_process:151,dup:56}],182:[function(require,module,exports){arguments[4][57][0].apply(exports,arguments)},{"../../../errors":173,dup:57}],183:[function(require,module,exports){arguments[4][58][0].apply(exports,arguments)},{dup:58}],184:[function(require,module,exports){arguments[4][59][0].apply(exports,arguments)},{"../../../errors":173,"./end-of-stream":182,dup:59}],185:[function(require,module,exports){arguments[4][60][0].apply(exports,arguments)},{"../../../errors":173,dup:60}],186:[function(require,module,exports){arguments[4][61][0].apply(exports,arguments)},{dup:61,events:101}],187:[function(require,module,exports){"use strict";var Buffer=require("safe-buffer").Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch((encoding=""+encoding)&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function StringDecoder(encoding){var nb;switch(this.encoding=function(enc){var nenc=function(enc){if(!enc)return"utf8";for(var retried;;)switch(enc){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return enc;default:if(retried)return;enc=(""+enc).toLowerCase(),retried=!0}}(enc);if("string"!=typeof nenc&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw new Error("Unknown encoding: "+enc);return nenc||enc}(encoding),this.encoding){case"utf16le":this.text=utf16Text,this.end=utf16End,nb=4;break;case"utf8":this.fillLast=utf8FillLast,nb=4;break;case"base64":this.text=base64Text,this.end=base64End,nb=3;break;default:return this.write=simpleWrite,void(this.end=simpleEnd)}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}function utf8CheckByte(byte){return byte<=127?0:byte>>5==6?2:byte>>4==14?3:byte>>3==30?4:byte>>6==2?-1:-2}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=function(self,buf,p){if(128!=(192&buf[0]))return self.lastNeed=0,"�";if(self.lastNeed>1&&buf.length>1){if(128!=(192&buf[1]))return self.lastNeed=1,"�";if(self.lastNeed>2&&buf.length>2&&128!=(192&buf[2]))return self.lastNeed=2,"�"}}(this,buf);return void 0!==r?r:this.lastNeed<=buf.length?(buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(buf.copy(this.lastChar,p,0,buf.length),void(this.lastNeed-=buf.length))}function utf16Text(buf,i){if((buf.length-i)%2==0){var r=buf.toString("utf16le",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString("utf16le",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):"";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString("utf16le",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;return 0===n?buf.toString("base64",i):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=buf[buf.length-1]:(this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1]),buf.toString("base64",i,buf.length-n))}function base64End(buf){var r=buf&&buf.length?this.write(buf):"";return this.lastNeed?r+this.lastChar.toString("base64",0,3-this.lastNeed):r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):""}exports.StringDecoder=StringDecoder,StringDecoder.prototype.write=function(buf){if(0===buf.length)return"";var r,i;if(this.lastNeed){if(void 0===(r=this.fillLast(buf)))return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i=0)return nb>0&&(self.lastNeed=nb-1),nb;if(--j=0)return nb>0&&(self.lastNeed=nb-2),nb;if(--j=0)return nb>0&&(2===nb?nb=0:self.lastNeed=nb-3),nb;return 0}(this,buf,i);if(!this.lastNeed)return buf.toString("utf8",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString("utf8",i,end)},StringDecoder.prototype.fillLast=function(buf){if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,this.lastTotal-this.lastNeed,0,buf.length),this.lastNeed-=buf.length}},{"safe-buffer":162}],188:[function(require,module,exports){(function(global){(function(){function config(name){try{if(!global.localStorage)return!1}catch(_){return!1}var val=global.localStorage[name];return null!=val&&"true"===String(val).toLowerCase()}module.exports=function(fn,msg){if(config("noDeprecation"))return fn;var warned=!1;return function(){if(!warned){if(config("throwDeprecation"))throw new Error(msg);config("traceDeprecation")?console.trace(msg):console.warn(msg),warned=!0}return fn.apply(this,arguments)}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],189:[function(require,module,exports){"use strict";const createVCD=require("../out/vcd.js"),webVcdParser=require("../lib/web-vcd-parser.js");window.getVcdStream=async function(){const wasm=await createVCD();return await webVcdParser(wasm)}},{"../lib/web-vcd-parser.js":191,"../out/vcd.js":192}],190:[function(require,module,exports){"use strict";module.exports=(info,cmd,str)=>{switch(str=str.trim(),cmd){case 1:info.comment=str;break;case 2:info.date=str;break;case 3:((info,str)=>{const[type,name]=str.split(/\s+/),ero={kind:"scope",type:type,name:name,body:[]};info.stack[info.stack.length-1].body.push(ero),info.stack.push(ero)})(info,str);break;case 4:info.timescale=str;break;case 5:(info=>{info.stack.pop()})(info);break;case 6:((info,str)=>{const eroj=str.split(/\s+/),ero={kind:"var",type:eroj[0],size:parseInt(eroj[1]),link:eroj[2],name:eroj.slice(3).join("")};{const m=ero.name.match("^(?\\w+)\\["+(ero.size-1)+":0]$");m&&(ero.name=m.groups.name)}info.stack[info.stack.length-1].body.push(ero)})(info,str);break;case 7:info.version=str;break;default:console.log([cmd,str])}}},{}],191:[function(require,module,exports){"use strict";const stream=require("stream"),EventEmitter=require("events").EventEmitter,commandHandler=require("./command-handler.js");function h8ToBn(HEAPU8,start,len){if(0===len)return 0n;let str="";const fin=start+8*len;for(let i=start;i{const lib=(wasm=>{const c={};let bindCallback;const getString=(name,len)=>{let string="";const end=name+len;for(let i=name;i{const name=getString(eventName,eventNameLength);if(cmd>=14&&cmd<=28)ee[1](name,time,cmd);else{const bigValue=h8ToBn(wasm.HEAPU8,value,valueWords),bigMask=h8ToBn(wasm.HEAPU8,mask,maskWords);ee[1](name,time,cmd,bigValue,bigMask)}};return bindCallback=()=>{boundSet=wasm.addFunction((function(name,len,type,v0,v1){let prop=getString(name,len);switch(type){case 0:boundInfo[prop]=v0;break;case 1:boundInfo[prop]=getString(v0,v1);break;case 2:case 3:case 4:break;case 5:commandHandler(boundInfo,v0,prop);break;default:throw new Error}}),"viiiii"),boundGet=wasm.addFunction((function(name,len){return getString(name,len)}),"iii"),boundEE0=wasm.addFunction((function(name,len){ee[0](getString(name,len))}),"vii"),boundEE1=wasm.addFunction(onEE1,"viijiiiii")},{start:async()=>{((c,wasm)=>{const w=wasm.cwrap;c.execute=w("execute","number",["number","number","number","number","number","array","number"]),c.init=w("init","number",["number","number","number","number"]),c.getTime=w("getTime","number",["number"]),c.setTrigger=w("setTrigger","number",["number","string"])})(c,wasm),bindCallback()},c:c,init:(cb0,cb1,info)=>(boundInfo=info,ee[0]=cb0,ee[1]=cb1,context=c.init(boundEE0,boundEE1,boundSet,boundGet),context),execute:(ctx,cb0,cb1,info,chunk)=>(boundInfo=info,ee[0]=cb0,ee[1]=cb1,c.execute(ctx,boundEE0,boundEE1,boundSet,boundGet,chunk,chunk.length)),setTrigger:(ctx,triggerString)=>c.setTrigger(ctx,triggerString),getTime:ctx=>BigInt(c.getTime(ctx))}})(wasm);await lib.start();const wires={kind:"scope",type:".",name:".",body:[]},info={stack:[wires],wires:wires},s=new stream.Writable,lifemit=s.emit.bind(s),triee=new EventEmitter,triemit=triee.emit.bind(triee);let triemit2=triemit;const cxt=lib.init(lifemit,triemit,info);return s._write=function(chunk,encoding,callback){const err=lib.execute(cxt,lifemit,triemit2,info,chunk);err&&console.log(err),callback()},s.change={on:(id,fn)=>{triemit2=triemit,triee.on(id,fn);const triggerString=triee.eventNames().join(" ")+" ";lib.setTrigger(cxt,triggerString)},any:fn=>{triemit2=fn,lib.setTrigger(cxt,"\0")}},s.info=info,s.getTime=()=>lib.getTime(cxt),s.start=lib.start,s}},{"./command-handler.js":190,events:101,stream:172}],192:[function(require,module,exports){(function(process,Buffer,__filename,__argument0,__argument1,__argument2,__argument3,__dirname){(function(){var _scriptDir,Module=(_scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0,void 0!==__filename&&(_scriptDir=_scriptDir||__filename),function(Module={}){var readyPromiseResolve,readyPromiseReject;(Module=void 0!==Module?Module:{}).ready=new Promise((function(resolve,reject){readyPromiseResolve=resolve,readyPromiseReject=reject}));var read_,readAsync,readBinary,moduleOverrides=Object.assign({},Module),thisProgram="./this.program",quit_=(status,toThrow)=>{throw toThrow},ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,scriptDirectory="";if(ENVIRONMENT_IS_NODE){var fs=require("fs"),nodePath=require("path");scriptDirectory=ENVIRONMENT_IS_WORKER?nodePath.dirname(scriptDirectory)+"/":__dirname+"/",read_=(filename,binary)=>(filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename),fs.readFileSync(filename,binary?void 0:"utf8")),readBinary=filename=>{var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),ret},readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename),fs.readFile(filename,(function(err,data){err?onerror(err):onload(data.buffer)}))},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus))throw ex})),process.version.match(/^v(\d+)\./)[1]<15&&process.on("unhandledRejection",(function(reason){throw reason})),quit_=(status,toThrow)=>{if(keepRuntimeAlive())throw process.exitCode=status,toThrow;var e;(e=toThrow)instanceof ExitStatus||err("exiting due to exception: "+e),process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"}}else(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&(ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1):"",read_=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=url=>{var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=()=>{200==xhr.status||0==xhr.status&&xhr.response?onload(xhr.response):onerror()},xhr.onerror=onerror,xhr.send(null)});var wasmBinary,out=Module.print||console.log.bind(console),err=Module.printErr||console.warn.bind(console);Object.assign(Module,moduleOverrides),moduleOverrides=null,Module.arguments&&Module.arguments,Module.thisProgram&&(thisProgram=Module.thisProgram),Module.quit&&(quit_=Module.quit),Module.wasmBinary&&(wasmBinary=Module.wasmBinary);var wasmMemory,noExitRuntime=Module.noExitRuntime||!0;"object"!=typeof WebAssembly&&abort("no native wasm support detected");var EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPF64,wasmTable,ABORT=!1,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){for(var endIdx=idx+maxBytesToRead,endPtr=idx;heapOrArray[endPtr]&&!(endPtr>=endIdx);)++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder)return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr));for(var str="";idx>10,56320|1023&ch)}}else str+=String.fromCharCode((31&u0)<<6|u1)}else str+=String.fromCharCode(u0)}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;i=55296&&u<=57343&&(u=65536+((1023&u)<<10)|1023&str.charCodeAt(++i)),u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|63&u}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|63&u}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18,heap[outIdx++]=128|u>>12&63,heap[outIdx++]=128|u>>6&63,heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx}function lengthBytesUTF8(str){for(var len=0,i=0;i=55296&&c<=57343?(len+=4,++i):len+=3}return len}function updateMemoryViews(){var b=wasmMemory.buffer;Module.HEAP8=HEAP8=new Int8Array(b),Module.HEAP16=HEAP16=new Int16Array(b),Module.HEAP32=HEAP32=new Int32Array(b),Module.HEAPU8=HEAPU8=new Uint8Array(b),Module.HEAPU16=new Uint16Array(b),Module.HEAPU32=HEAPU32=new Uint32Array(b),Module.HEAPF32=HEAPF32=new Float32Array(b),Module.HEAPF64=HEAPF64=new Float64Array(b),Module.HEAP64=HEAP64=new BigInt64Array(b),Module.HEAPU64=new BigUint64Array(b)}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[];function keepRuntimeAlive(){return noExitRuntime}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}function abort(what){Module.onAbort&&Module.onAbort(what),err(what="Aborted("+what+")"),ABORT=!0,EXITSTATUS=1,what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw readyPromiseReject(e),e}var wasmBinaryFile,path,tempDouble,tempI64,dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}function callRuntimeCallbacks(callbacks){for(;callbacks.length>0;)callbacks.shift()(Module)}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;try{return wasmMemory.grow(size-b.byteLength+65535>>>16),updateMemoryViews(),1}catch(e){}}isDataURI(wasmBinaryFile="vcd.wasm")||(path=wasmBinaryFile,wasmBinaryFile=Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path);var ENV={};function getEnvStrings(){if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:thisProgram||"./this.program"};for(var x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var strings=[];for(var x in env)strings.push(x+"="+env[x]);getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>"/"===path.charAt(0),splitPath:filename=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(filename).slice(1),normalizeArray:(parts,allowAboveRoot)=>{for(var up=0,i=parts.length-1;i>=0;i--){var last=parts[i];"."===last?parts.splice(i,1):".."===last?(parts.splice(i,1),up++):up&&(parts.splice(i,1),up--)}if(allowAboveRoot)for(;up;up--)parts.unshift("..");return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash="/"===path.substr(-1);return(path=PATH.normalizeArray(path.split("/").filter((p=>!!p)),!isAbsolute).join("/"))||isAbsolute||(path="."),path&&trailingSlash&&(path+="/"),(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];return root||dir?(dir&&(dir=dir.substr(0,dir.length-1)),root+dir):"."},basename:path=>{if("/"===path)return"/";var lastSlash=(path=(path=PATH.normalize(path)).replace(/\/$/,"")).lastIndexOf("/");return-1===lastSlash?path:path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>PATH.normalize(l+"/"+r)},PATH_FS={resolve:function(){for(var resolvedPath="",resolvedAbsolute=!1,i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if("string"!=typeof path)throw new TypeError("Arguments to path.resolve must be strings");if(!path)return"";resolvedPath=path+"/"+resolvedPath,resolvedAbsolute=PATH.isAbs(path)}return(resolvedAbsolute?"/":"")+(resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((p=>!!p)),!resolvedAbsolute).join("/"))||"."},relative:(from,to)=>{function trim(arr){for(var start=0;start=0&&""===arr[end];end--);return start>end?[]:arr.slice(start,end-start+1)}from=PATH_FS.resolve(from).substr(1),to=PATH_FS.resolve(to).substr(1);for(var fromParts=trim(from.split("/")),toParts=trim(to.split("/")),length=Math.min(fromParts.length,toParts.length),samePartsLength=length,i=0;i0?length:lengthBytesUTF8(stringy)+1,u8array=new Array(len),numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);return dontAddNull&&(u8array.length=numBytesWritten),u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops},FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty)throw new FS.ErrnoError(43);stream.tty=tty,stream.seekable=!1},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char)throw new FS.ErrnoError(60);for(var bytesRead=0,i=0;i0?buf.slice(0,bytesRead).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(result=window.prompt("Input: "))&&(result+="\n"):"function"==typeof readline&&null!==(result=readline())&&(result+="\n");if(!result)return null;tty.input=intArrayFromString(result,!0)}return tty.input.shift()},put_char:function(tty,val){null===val||10===val?(out(UTF8ArrayToString(tty.output,0)),tty.output=[]):0!=val&&tty.output.push(val)},fsync:function(tty){tty.output&&tty.output.length>0&&(out(UTF8ArrayToString(tty.output,0)),tty.output=[])}},default_tty1_ops:{put_char:function(tty,val){null===val||10===val?(err(UTF8ArrayToString(tty.output,0)),tty.output=[]):0!=val&&tty.output.push(val)},fsync:function(tty){tty.output&&tty.output.length>0&&(err(UTF8ArrayToString(tty.output,0)),tty.output=[])}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16895,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode))throw new FS.ErrnoError(63);MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var node=FS.createNode(parent,name,mode,dev);return FS.isDir(node.mode)?(node.node_ops=MEMFS.ops_table.dir.node,node.stream_ops=MEMFS.ops_table.dir.stream,node.contents={}):FS.isFile(node.mode)?(node.node_ops=MEMFS.ops_table.file.node,node.stream_ops=MEMFS.ops_table.file.stream,node.usedBytes=0,node.contents=null):FS.isLink(node.mode)?(node.node_ops=MEMFS.ops_table.link.node,node.stream_ops=MEMFS.ops_table.link.stream):FS.isChrdev(node.mode)&&(node.node_ops=MEMFS.ops_table.chrdev.node,node.stream_ops=MEMFS.ops_table.chrdev.stream),node.timestamp=Date.now(),parent&&(parent.contents[name]=node,parent.timestamp=node.timestamp),node},getFileDataAsTypedArray:function(node){return node.contents?node.contents.subarray?node.contents.subarray(0,node.usedBytes):new Uint8Array(node.contents):new Uint8Array(0)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(!(prevCapacity>=newCapacity)){newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<1048576?2:1.125)>>>0),0!=prevCapacity&&(newCapacity=Math.max(newCapacity,256));var oldContents=node.contents;node.contents=new Uint8Array(newCapacity),node.usedBytes>0&&node.contents.set(oldContents.subarray(0,node.usedBytes),0)}},resizeFileStorage:function(node,newSize){if(node.usedBytes!=newSize)if(0==newSize)node.contents=null,node.usedBytes=0;else{var oldContents=node.contents;node.contents=new Uint8Array(newSize),oldContents&&node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes))),node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};return attr.dev=FS.isChrdev(node.mode)?node.id:1,attr.ino=node.id,attr.mode=node.mode,attr.nlink=1,attr.uid=0,attr.gid=0,attr.rdev=node.rdev,FS.isDir(node.mode)?attr.size=4096:FS.isFile(node.mode)?attr.size=node.usedBytes:FS.isLink(node.mode)?attr.size=node.link.length:attr.size=0,attr.atime=new Date(node.timestamp),attr.mtime=new Date(node.timestamp),attr.ctime=new Date(node.timestamp),attr.blksize=4096,attr.blocks=Math.ceil(attr.size/attr.blksize),attr},setattr:function(node,attr){void 0!==attr.mode&&(node.mode=attr.mode),void 0!==attr.timestamp&&(node.timestamp=attr.timestamp),void 0!==attr.size&&MEMFS.resizeFileStorage(node,attr.size)},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node)for(var i in new_node.contents)throw new FS.ErrnoError(55)}delete old_node.parent.contents[old_node.name],old_node.parent.timestamp=Date.now(),old_node.name=new_name,new_dir.contents[new_name]=old_node,new_dir.timestamp=old_node.parent.timestamp,old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name],parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents)throw new FS.ErrnoError(55);delete parent.contents[name],parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents)node.contents.hasOwnProperty(key)&&entries.push(key);return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,41471,0);return node.link=oldpath,node},readlink:function(node){if(!FS.isLink(node.mode))throw new FS.ErrnoError(28);return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray)buffer.set(contents.subarray(position,position+size),offset);else for(var i=0;i0||position+length{var text;text='Loading data file "'+url+'" failed (no arrayBuffer).',arrayBuffer||abort(text),onload(new Uint8Array(arrayBuffer)),dep&&removeRunDependency()}),(event=>{if(!onerror)throw'Loading data file "'+url+'" failed.';onerror()})),dep&&addRunDependency()}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{if(!(path=PATH_FS.resolve(path)))return{path:"",node:null};if((opts=Object.assign({follow_mount:!0,recurse_count:0},opts)).recurse_count>8)throw new FS.ErrnoError(32);for(var parts=path.split("/").filter((p=>!!p)),current=FS.root,current_path="/",i=0;i40)throw new FS.ErrnoError(32)}}return{path:current_path,node:current}},getPath:node=>{for(var path;;){if(FS.isRoot(node)){var mount=node.mount.mountpoint;return path?"/"!==mount[mount.length-1]?mount+"/"+path:mount+path:mount}path=path?node.name+"/"+path:node.name,node=node.parent}},hashName:(parentid,name)=>{for(var hash=0,i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash],FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node)FS.nameTable[hash]=node.name_next;else for(var current=FS.nameTable[hash];current;){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode)throw new FS.ErrnoError(errCode,parent);for(var hash=FS.hashName(parent.id,name),node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name)return node}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);return FS.hashAddNode(node),node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>node===node.parent,isMountpoint:node=>!!node.mounted,isFile:mode=>32768==(61440&mode),isDir:mode=>16384==(61440&mode),isLink:mode=>40960==(61440&mode),isChrdev:mode=>8192==(61440&mode),isBlkdev:mode=>24576==(61440&mode),isFIFO:mode=>4096==(61440&mode),isSocket:mode=>49152==(49152&mode),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(void 0===flags)throw new Error("Unknown file open mode: "+str);return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][3&flag];return 512&flag&&(perms+="w"),perms},nodePermissions:(node,perms)=>FS.ignorePermissions||(!perms.includes("r")||292&node.mode)&&(!perms.includes("w")||146&node.mode)&&(!perms.includes("x")||73&node.mode)?0:2,mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");return errCode||(dir.node_ops.lookup?0:2)},mayCreate:(dir,name)=>{try{return FS.lookupNode(dir,name),20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode)return errCode;if(isdir){if(!FS.isDir(node.mode))return 54;if(FS.isRoot(node)||FS.getPath(node)===FS.cwd())return 10}else if(FS.isDir(node.mode))return 31;return 0},mayOpen:(node,flags)=>node?FS.isLink(node.mode)?32:FS.isDir(node.mode)&&("r"!==FS.flagsToPermissionString(flags)||512&flags)?31:FS.nodePermissions(node,FS.flagsToPermissionString(flags)):44,MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++)if(!FS.streams[fd])return fd;throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{FS.FSStream||(FS.FSStream=function(){this.shared={}},FS.FSStream.prototype={},Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})),stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);return stream.fd=fd,FS.streams[fd]=stream,stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops,stream.stream_ops.open&&stream.stream_ops.open(stream)},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>255&dev,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{for(var mounts=[],check=[mount];check.length;){var m=check.pop();mounts.push(m),check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{"function"==typeof populate&&(callback=populate,populate=!1),FS.syncFSRequests++,FS.syncFSRequests>1&&err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var mounts=FS.getMounts(FS.root.mount),completed=0;function doCallback(errCode){return FS.syncFSRequests--,callback(errCode)}function done(errCode){if(errCode)return done.errored?void 0:(done.errored=!0,doCallback(errCode));++completed>=mounts.length&&doCallback(null)}mounts.forEach((mount=>{if(!mount.type.syncfs)return done(null);mount.type.syncfs(mount,populate,done)}))},mount:(type,opts,mountpoint)=>{var node,root="/"===mountpoint,pseudo=!mountpoint;if(root&&FS.root)throw new FS.ErrnoError(10);if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:!1});if(mountpoint=lookup.path,node=lookup.node,FS.isMountpoint(node))throw new FS.ErrnoError(10);if(!FS.isDir(node.mode))throw new FS.ErrnoError(54)}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]},mountRoot=type.mount(mount);return mountRoot.mount=mount,mount.root=mountRoot,root?FS.root=mountRoot:node&&(node.mounted=mount,node.mount&&node.mount.mounts.push(mount)),mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:!1});if(!FS.isMountpoint(lookup.node))throw new FS.ErrnoError(28);var node=lookup.node,mount=node.mounted,mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((hash=>{for(var current=FS.nameTable[hash];current;){var next=current.name_next;mounts.includes(current.mount)&&FS.destroyNode(current),current=next}})),node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>parent.node_ops.lookup(parent,name),mknod:(path,mode,dev)=>{var parent=FS.lookupPath(path,{parent:!0}).node,name=PATH.basename(path);if(!name||"."===name||".."===name)throw new FS.ErrnoError(28);var errCode=FS.mayCreate(parent,name);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.mknod)throw new FS.ErrnoError(63);return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>(mode=void 0!==mode?mode:438,mode&=4095,mode|=32768,FS.mknod(path,mode,0)),mkdir:(path,mode)=>(mode=void 0!==mode?mode:511,mode&=1023,mode|=16384,FS.mknod(path,mode,0)),mkdirTree:(path,mode)=>{for(var dirs=path.split("/"),d="",i=0;i(void 0===dev&&(dev=mode,mode=438),mode|=8192,FS.mknod(path,mode,dev)),symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath))throw new FS.ErrnoError(44);var parent=FS.lookupPath(newpath,{parent:!0}).node;if(!parent)throw new FS.ErrnoError(44);var newname=PATH.basename(newpath),errCode=FS.mayCreate(parent,newname);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.symlink)throw new FS.ErrnoError(63);return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dir,new_dir,old_dirname=PATH.dirname(old_path),new_dirname=PATH.dirname(new_path),old_name=PATH.basename(old_path),new_name=PATH.basename(new_path);if(old_dir=FS.lookupPath(old_path,{parent:!0}).node,new_dir=FS.lookupPath(new_path,{parent:!0}).node,!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount)throw new FS.ErrnoError(75);var new_node,old_node=FS.lookupNode(old_dir,old_name),relative=PATH_FS.relative(old_path,new_dirname);if("."!==relative.charAt(0))throw new FS.ErrnoError(28);if("."!==(relative=PATH_FS.relative(new_path,old_dirname)).charAt(0))throw new FS.ErrnoError(55);try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node!==new_node){var isdir=FS.isDir(old_node.mode),errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode)throw new FS.ErrnoError(errCode);if(errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name))throw new FS.ErrnoError(errCode);if(!old_dir.node_ops.rename)throw new FS.ErrnoError(63);if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node))throw new FS.ErrnoError(10);if(new_dir!==old_dir&&(errCode=FS.nodePermissions(old_dir,"w")))throw new FS.ErrnoError(errCode);FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}}},rmdir:path=>{var parent=FS.lookupPath(path,{parent:!0}).node,name=PATH.basename(path),node=FS.lookupNode(parent,name),errCode=FS.mayDelete(parent,name,!0);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.rmdir)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.rmdir(parent,name),FS.destroyNode(node)},readdir:path=>{var node=FS.lookupPath(path,{follow:!0}).node;if(!node.node_ops.readdir)throw new FS.ErrnoError(54);return node.node_ops.readdir(node)},unlink:path=>{var parent=FS.lookupPath(path,{parent:!0}).node;if(!parent)throw new FS.ErrnoError(44);var name=PATH.basename(path),node=FS.lookupNode(parent,name),errCode=FS.mayDelete(parent,name,!1);if(errCode)throw new FS.ErrnoError(errCode);if(!parent.node_ops.unlink)throw new FS.ErrnoError(63);if(FS.isMountpoint(node))throw new FS.ErrnoError(10);parent.node_ops.unlink(parent,name),FS.destroyNode(node)},readlink:path=>{var link=FS.lookupPath(path).node;if(!link)throw new FS.ErrnoError(44);if(!link.node_ops.readlink)throw new FS.ErrnoError(28);return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var node=FS.lookupPath(path,{follow:!dontFollow}).node;if(!node)throw new FS.ErrnoError(44);if(!node.node_ops.getattr)throw new FS.ErrnoError(63);return node.node_ops.getattr(node)},lstat:path=>FS.stat(path,!0),chmod:(path,mode,dontFollow)=>{var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!dontFollow}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);node.node_ops.setattr(node,{mode:4095&mode|-4096&node.mode,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,!0)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!dontFollow}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,!0)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0)throw new FS.ErrnoError(28);var node;if(!(node="string"==typeof path?FS.lookupPath(path,{follow:!0}).node:path).node_ops.setattr)throw new FS.ErrnoError(63);if(FS.isDir(node.mode))throw new FS.ErrnoError(31);if(!FS.isFile(node.mode))throw new FS.ErrnoError(28);var errCode=FS.nodePermissions(node,"w");if(errCode)throw new FS.ErrnoError(errCode);node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);if(0==(2097155&stream.flags))throw new FS.ErrnoError(28);FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var node=FS.lookupPath(path,{follow:!0}).node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(""===path)throw new FS.ErrnoError(44);var node;if(mode=void 0===mode?438:mode,mode=64&(flags="string"==typeof flags?FS.modeStringToFlags(flags):flags)?4095&mode|32768:0,"object"==typeof path)node=path;else{path=PATH.normalize(path);try{node=FS.lookupPath(path,{follow:!(131072&flags)}).node}catch(e){}}var created=!1;if(64&flags)if(node){if(128&flags)throw new FS.ErrnoError(20)}else node=FS.mknod(path,mode,0),created=!0;if(!node)throw new FS.ErrnoError(44);if(FS.isChrdev(node.mode)&&(flags&=-513),65536&flags&&!FS.isDir(node.mode))throw new FS.ErrnoError(54);if(!created){var errCode=FS.mayOpen(node,flags);if(errCode)throw new FS.ErrnoError(errCode)}512&flags&&!created&&FS.truncate(node,0),flags&=-131713;var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:!0,position:0,stream_ops:node.stream_ops,ungotten:[],error:!1});return stream.stream_ops.open&&stream.stream_ops.open(stream),!Module.logReadFiles||1&flags||(FS.readFiles||(FS.readFiles={}),path in FS.readFiles||(FS.readFiles[path]=1)),stream},close:stream=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);stream.getdents&&(stream.getdents=null);try{stream.stream_ops.close&&stream.stream_ops.close(stream)}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>null===stream.fd,llseek:(stream,offset,whence)=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(!stream.seekable||!stream.stream_ops.llseek)throw new FS.ErrnoError(70);if(0!=whence&&1!=whence&&2!=whence)throw new FS.ErrnoError(28);return stream.position=stream.stream_ops.llseek(stream,offset,whence),stream.ungotten=[],stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(1==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.read)throw new FS.ErrnoError(28);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);return seeking||(stream.position+=bytesRead),bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0)throw new FS.ErrnoError(28);if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(FS.isDir(stream.node.mode))throw new FS.ErrnoError(31);if(!stream.stream_ops.write)throw new FS.ErrnoError(28);stream.seekable&&1024&stream.flags&&FS.llseek(stream,0,2);var seeking=void 0!==position;if(seeking){if(!stream.seekable)throw new FS.ErrnoError(70)}else position=stream.position;var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);return seeking||(stream.position+=bytesWritten),bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream))throw new FS.ErrnoError(8);if(offset<0||length<=0)throw new FS.ErrnoError(28);if(0==(2097155&stream.flags))throw new FS.ErrnoError(8);if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode))throw new FS.ErrnoError(43);if(!stream.stream_ops.allocate)throw new FS.ErrnoError(138);stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if(0!=(2&prot)&&0==(2&flags)&&2!=(2097155&stream.flags))throw new FS.ErrnoError(2);if(1==(2097155&stream.flags))throw new FS.ErrnoError(2);if(!stream.stream_ops.mmap)throw new FS.ErrnoError(43);return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>stream.stream_ops.msync?stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags):0,munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl)throw new FS.ErrnoError(59);return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{if(opts.flags=opts.flags||0,opts.encoding=opts.encoding||"binary","utf8"!==opts.encoding&&"binary"!==opts.encoding)throw new Error('Invalid encoding type "'+opts.encoding+'"');var ret,stream=FS.open(path,opts.flags),length=FS.stat(path).size,buf=new Uint8Array(length);return FS.read(stream,buf,0,length,0),"utf8"===opts.encoding?ret=UTF8ArrayToString(buf,0):"binary"===opts.encoding&&(ret=buf),FS.close(stream),ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if("string"==typeof data){var buf=new Uint8Array(lengthBytesUTF8(data)+1),actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,void 0,opts.canOwn)}else{if(!ArrayBuffer.isView(data))throw new Error("Unsupported data type");FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn)}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:!0});if(null===lookup.node)throw new FS.ErrnoError(44);if(!FS.isDir(lookup.node.mode))throw new FS.ErrnoError(54);var errCode=FS.nodePermissions(lookup.node,"x");if(errCode)throw new FS.ErrnoError(errCode);FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp"),FS.mkdir("/home"),FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev"),FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length}),FS.mkdev("/dev/null",FS.makedev(1,3)),TTY.register(FS.makedev(5,0),TTY.default_tty_ops),TTY.register(FS.makedev(6,0),TTY.default_tty1_ops),FS.mkdev("/dev/tty",FS.makedev(5,0)),FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=function(){if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var randomBuffer=new Uint8Array(1);return()=>(crypto.getRandomValues(randomBuffer),randomBuffer[0])}if(ENVIRONMENT_IS_NODE)try{var crypto_module=require("crypto");return()=>crypto_module.randomBytes(1)[0]}catch(e){}return()=>abort("randomDevice")}();FS.createDevice("/dev","random",random_device),FS.createDevice("/dev","urandom",random_device),FS.mkdir("/dev/shm"),FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd"),FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16895,73);return node.node_ops={lookup:(parent,name)=>{var fd=+name,stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};return ret.parent=ret,ret}},node}},{},"/proc/self/fd")},createStandardStreams:()=>{Module.stdin?FS.createDevice("/dev","stdin",Module.stdin):FS.symlink("/dev/tty","/dev/stdin"),Module.stdout?FS.createDevice("/dev","stdout",null,Module.stdout):FS.symlink("/dev/tty","/dev/stdout"),Module.stderr?FS.createDevice("/dev","stderr",null,Module.stderr):FS.symlink("/dev/tty1","/dev/stderr"),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1)},ensureErrnoError:()=>{FS.ErrnoError||(FS.ErrnoError=function(errno,node){this.node=node,this.setErrno=function(errno){this.errno=errno},this.setErrno(errno),this.message="FS error"},FS.ErrnoError.prototype=new Error,FS.ErrnoError.prototype.constructor=FS.ErrnoError,[44].forEach((code=>{FS.genericErrors[code]=new FS.ErrnoError(code),FS.genericErrors[code].stack=""})))},staticInit:()=>{FS.ensureErrnoError(),FS.nameTable=new Array(4096),FS.mount(MEMFS,{},"/"),FS.createDefaultDirectories(),FS.createDefaultDevices(),FS.createSpecialDirectories(),FS.filesystems={MEMFS:MEMFS}},init:(input,output,error)=>{FS.init.initialized=!0,FS.ensureErrnoError(),Module.stdin=input||Module.stdin,Module.stdout=output||Module.stdout,Module.stderr=error||Module.stderr,FS.createStandardStreams()},quit:()=>{FS.init.initialized=!1;for(var i=0;i{var mode=0;return canRead&&(mode|=365),canWrite&&(mode|=146),mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);return ret.exists?ret.object:null},analyzePath:(path,dontResolveLastLink)=>{try{path=(lookup=FS.lookupPath(path,{follow:!dontResolveLastLink})).path}catch(e){}var ret={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:!0});ret.parentExists=!0,ret.parentPath=lookup.path,ret.parentObject=lookup.node,ret.name=PATH.basename(path),lookup=FS.lookupPath(path,{follow:!dontResolveLastLink}),ret.exists=!0,ret.path=lookup.path,ret.object=lookup.node,ret.name=lookup.node.name,ret.isRoot="/"===lookup.path}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent="string"==typeof parent?parent:FS.getPath(parent);for(var parts=path.split("/").reverse();parts.length;){var part=parts.pop();if(part){var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2("string"==typeof parent?parent:FS.getPath(parent),name),mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;parent&&(parent="string"==typeof parent?parent:FS.getPath(parent),path=name?PATH.join2(parent,name):parent);var mode=FS.getMode(canRead,canWrite),node=FS.create(path,mode);if(data){if("string"==typeof data){for(var arr=new Array(data.length),i=0,len=data.length;i{var path=PATH.join2("string"==typeof parent?parent:FS.getPath(parent),name),mode=FS.getMode(!!input,!!output);FS.createDevice.major||(FS.createDevice.major=64);var dev=FS.makedev(FS.createDevice.major++,0);return FS.registerDevice(dev,{open:stream=>{stream.seekable=!1},close:stream=>{output&&output.buffer&&output.buffer.length&&output(10)},read:(stream,buffer,offset,length,pos)=>{for(var bytesRead=0,i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!read_)throw new Error("Cannot load without read() or XMLHttpRequest.");try{obj.contents=intArrayFromString(read_(obj.url),!0),obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=!1,this.chunks=[]}if(LazyUint8Array.prototype.get=function(idx){if(!(idx>this.length-1||idx<0)){var chunkOffset=idx%this.chunkSize,chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}},LazyUint8Array.prototype.setDataGetter=function(getter){this.getter=getter},LazyUint8Array.prototype.cacheLength=function(){var xhr=new XMLHttpRequest;if(xhr.open("HEAD",url,!1),xhr.send(null),!(xhr.status>=200&&xhr.status<300||304===xhr.status))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var header,datalength=Number(xhr.getResponseHeader("Content-length")),hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&"bytes"===header,usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&"gzip"===header,chunkSize=1048576;hasByteServing||(chunkSize=datalength);var lazyArray=this;lazyArray.setDataGetter((chunkNum=>{var start=chunkNum*chunkSize,end=(chunkNum+1)*chunkSize-1;if(end=Math.min(end,datalength-1),void 0===lazyArray.chunks[chunkNum]&&(lazyArray.chunks[chunkNum]=((from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;if(xhr.open("GET",url,!1),datalength!==chunkSize&&xhr.setRequestHeader("Range","bytes="+from+"-"+to),xhr.responseType="arraybuffer",xhr.overrideMimeType&&xhr.overrideMimeType("text/plain; charset=x-user-defined"),xhr.send(null),!(xhr.status>=200&&xhr.status<300||304===xhr.status))throw new Error("Couldn't load "+url+". Status: "+xhr.status);return void 0!==xhr.response?new Uint8Array(xhr.response||[]):intArrayFromString(xhr.responseText||"",!0)})(start,end)),void 0===lazyArray.chunks[chunkNum])throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]})),!usesGzip&&datalength||(chunkSize=datalength=1,datalength=this.getter(0).length,chunkSize=datalength,out("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=datalength,this._chunkSize=chunkSize,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var properties={isDevice:!1,contents:lazyArray}}else properties={isDevice:!1,url:url};var node=FS.createFile(parent,name,properties,canRead,canWrite);properties.contents?node.contents=properties.contents:properties.url&&(node.contents=null,node.url=properties.url),Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice)for(var i=0;i{var fn=node.stream_ops[key];stream_ops[key]=function(){return FS.forceLoadFile(node),fn.apply(null,arguments)}})),stream_ops.read=(stream,buffer,offset,length,position)=>(FS.forceLoadFile(node),writeChunks(stream,buffer,offset,length,position)),stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr)throw new FS.ErrnoError(48);return writeChunks(stream,HEAP8,ptr,length,position),{ptr:ptr,allocated:!0}},node.stream_ops=stream_ops,node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray){preFinish&&preFinish(),dontCreateFile||FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn),onload&&onload(),removeRunDependency()}Browser.handledByPreloadPlugin(byteArray,fullname,finish,(()=>{onerror&&onerror(),removeRunDependency()}))||finish(byteArray)}addRunDependency(),"string"==typeof url?asyncLoad(url,(byteArray=>processData(byteArray)),onerror):processData(url)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db"),openRequest.result.createObjectStore(FS.DB_STORE_NAME)},openRequest.onsuccess=()=>{var transaction=openRequest.result.transaction([FS.DB_STORE_NAME],"readwrite"),files=transaction.objectStore(FS.DB_STORE_NAME),ok=0,fail=0,total=paths.length;function finish(){0==fail?onload():onerror()}paths.forEach((path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{++ok+fail==total&&finish()},putRequest.onerror=()=>{fail++,ok+fail==total&&finish()}})),transaction.onerror=onerror},openRequest.onerror=onerror},loadFilesFromDB:(paths,onload=(()=>{}),onerror=(()=>{}))=>{var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror,openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){return void onerror(e)}var files=transaction.objectStore(FS.DB_STORE_NAME),ok=0,fail=0,total=paths.length;function finish(){0==fail?onload():onerror()}paths.forEach((path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{FS.analyzePath(path).exists&&FS.unlink(path),FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,!0,!0,!0),++ok+fail==total&&finish()},getRequest.onerror=()=>{fail++,ok+fail==total&&finish()}})),transaction.onerror=onerror},openRequest.onerror=onerror}},SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path))return path;var dir;if(dir=-100===dirfd?FS.cwd():SYSCALLS.getStreamFromFD(dirfd).path,0==path.length){if(!allowEmpty)throw new FS.ErrnoError(44);return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node)))return-54;throw e}HEAP32[buf>>2]=stat.dev,HEAP32[buf+8>>2]=stat.ino,HEAP32[buf+12>>2]=stat.mode,HEAPU32[buf+16>>2]=stat.nlink,HEAP32[buf+20>>2]=stat.uid,HEAP32[buf+24>>2]=stat.gid,HEAP32[buf+28>>2]=stat.rdev,tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1],HEAP32[buf+48>>2]=4096,HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime(),mtime=stat.mtime.getTime(),ctime=stat.ctime.getTime();return tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1],HEAPU32[buf+64>>2]=atime%1e3*1e3,tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1],HEAPU32[buf+80>>2]=mtime%1e3*1e3,tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1],HEAPU32[buf+96>>2]=ctime%1e3*1e3,tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1],0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode))throw new FS.ErrnoError(43);if(2&flags)return 0;var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:void 0,get:function(){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(ptr){return UTF8ToString(ptr)},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}},MAX_INT53=9007199254740992,MIN_INT53=-9007199254740992;function __isLeapYear(year){return year%4==0&&(year%100!=0||year%400==0)}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31],__MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2],date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""},pattern=UTF8ToString(format),EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1)pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule]);var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){for(var str="number"==typeof value?value.toString():value||"";str.length0?1:0}var compare;return 0===(compare=sgn(date1.getFullYear()-date2.getFullYear()))&&0===(compare=sgn(date1.getMonth()-date2.getMonth()))&&(compare=sgn(date1.getDate()-date2.getDate())),compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=function(date,days){for(var newDate=new Date(date.getTime());days>0;){var leap=__isLeapYear(newDate.getFullYear()),currentMonth=newDate.getMonth(),daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(!(days>daysInCurrentMonth-newDate.getDate()))return newDate.setDate(newDate.getDate()+days),newDate;days-=daysInCurrentMonth-newDate.getDate()+1,newDate.setDate(1),currentMonth<11?newDate.setMonth(currentMonth+1):(newDate.setMonth(0),newDate.setFullYear(newDate.getFullYear()+1))}return newDate}(new Date(date.tm_year+1900,0,1),date.tm_yday),janFourthThisYear=new Date(thisDate.getFullYear(),0,4),janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4),firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear),firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);return compareByDay(firstWeekStartThisYear,thisDate)<=0?compareByDay(firstWeekStartNextYear,thisDate)<=0?thisDate.getFullYear()+1:thisDate.getFullYear():thisDate.getFullYear()-1}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){return leadingNulls((date.tm_year+1900)/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;return 0==twelveHour?twelveHour=12:twelveHour>12&&(twelveHour-=12),leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+function(array,index){for(var sum=0,i=0;i<=index;sum+=array[i++]);return sum}(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){return date.tm_hour>=0&&date.tm_hour<12?"AM":"PM"},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2&&val++,val){if(53==val){var jan1=(date.tm_wday+371-date.tm_yday)%7;4==jan1||3==jan1&&__isLeapYear(date.tm_year)||(val=1)}}else{val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;(4==dec31||5==dec31&&__isLeapYear(date.tm_year%400-1))&&val++}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff,ahead=off>=0;return off=(off=Math.abs(off)/60)/60*100+off%60,(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in pattern=pattern.replace(/%%/g,"\0\0"),EXPANSION_RULES_2)pattern.includes(rule)&&(pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date)));var bytes=intArrayFromString(pattern=pattern.replace(/\0\0/g,"%"),!1);return bytes.length>maxsize?0:(writeArrayToMemory(bytes,s),bytes.length-1)}function exitJS(status,implicit){var code;EXITSTATUS=status,EXITSTATUS=code=status,keepRuntimeAlive()||(Module.onExit&&Module.onExit(code),ABORT=!0),quit_(code,new ExitStatus(code))}function getCFunc(ident){return Module["_"+ident]}function ccall(ident,returnType,argTypes,args,opts){var toC={string:str=>{var ret=0;if(null!=str&&0!==str){var len=1+(str.length<<2);!function(str,outPtr,maxBytesToWrite){stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}(str,ret=stackAlloc(len),len)}return ret},array:arr=>{var ret=stackAlloc(arr.length);return writeArrayToMemory(arr,ret),ret}},func=getCFunc(ident),cArgs=[],stack=0;if(args)for(var i=0;i>7)}function convertJsFunctionToWasm(func,sig){if("function"==typeof WebAssembly.Function)return new WebAssembly.Function(function(sig){for(var typeNames={i:"i32",j:"i32",f:"f32",d:"f64",p:"i32"},type={parameters:[],results:"v"==sig[0]?[]:[typeNames[sig[0]]]},i=1;i>>=0)>2147483648)return!1;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);if(overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296),emscripten_realloc_buffer(Math.min(2147483648,(x=Math.max(requestedSize,overGrownHeapSize))+((multiple=65536)-x%multiple)%multiple)))return!0}return!1},d:function(__environ,environ_buf){var bufSize=0;return getEnvStrings().forEach((function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+4*i>>2]=ptr,function(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i);dontAddNull||(HEAP8[buffer>>0]=0)}(string,ptr),bufSize+=string.length+1})),0},e:function(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;return strings.forEach((function(string){bufSize+=string.length+1})),HEAPU32[penviron_buf_size>>2]=bufSize,0},f:function(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return FS.close(stream),0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},g:function(fd,iov,iovcnt,pnum){try{var num=function(stream,iov,iovcnt,offset){for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;if(ret+=curr,curr>2]=num,0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},h:function(fd,offset,whence,newOffset){try{if(offset=(num=offset)MAX_INT53?NaN:Number(num),isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);return FS.llseek(stream,offset,whence),tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1],stream.getdents&&0===offset&&0===whence&&(stream.getdents=null),0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}var num},b:function(fd,iov,iovcnt,pnum){try{var num=function(stream,iov,iovcnt,offset){for(var ret=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr,void 0!==offset&&(offset+=curr)}return ret}(SYSCALLS.getStreamFromFD(fd),iov,iovcnt);return HEAPU32[pnum>>2]=num,0}catch(e){if(void 0===FS||!(e instanceof FS.ErrnoError))throw e;return e.errno}},c:function(s,maxsize,format,tm,loc){return _strftime(s,maxsize,format,tm)}},_main=(function(){var info={a:wasmImports};function receiveInstance(instance,module){var cb,exports=instance.exports;Module.asm=exports,wasmMemory=Module.asm.k,updateMemoryViews(),wasmTable=Module.asm.r,cb=Module.asm.l,__ATINIT__.unshift(cb),removeRunDependency()}function receiveInstantiationResult(result){receiveInstance(result.instance)}function instantiateArrayBuffer(receiver){return function(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if("function"==typeof fetch&&!isFileURI(wasmBinaryFile))return fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()})).catch((function(){return getBinary(wasmBinaryFile)}));if(readAsync)return new Promise((function(resolve,reject){readAsync(wasmBinaryFile,(function(response){resolve(new Uint8Array(response))}),reject)}))}return Promise.resolve().then((function(){return getBinary(wasmBinaryFile)}))}().then((function(binary){return WebAssembly.instantiate(binary,info)})).then((function(instance){return instance})).then(receiver,(function(reason){err("failed to asynchronously prepare wasm: "+reason),abort(reason)}))}if(addRunDependency(),Module.instantiateWasm)try{return Module.instantiateWasm(info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e),readyPromiseReject(e)}(wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||ENVIRONMENT_IS_NODE||"function"!=typeof fetch?instantiateArrayBuffer(receiveInstantiationResult):fetch(wasmBinaryFile,{credentials:"same-origin"}).then((function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiationResult,(function(reason){return err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiationResult)}))}))).catch(readyPromiseReject)}(),Module._init=function(){return(Module._init=Module.asm.m).apply(null,arguments)},Module._execute=function(){return(Module._execute=Module.asm.n).apply(null,arguments)},Module._setTrigger=function(){return(Module._setTrigger=Module.asm.o).apply(null,arguments)},Module._getTime=function(){return(Module._getTime=Module.asm.p).apply(null,arguments)},Module._main=function(){return(_main=Module._main=Module.asm.q).apply(null,arguments)}),stackSave=function(){return(stackSave=Module.asm.s).apply(null,arguments)},stackRestore=function(){return(stackRestore=Module.asm.t).apply(null,arguments)},stackAlloc=function(){return(stackAlloc=Module.asm.u).apply(null,arguments)};function callMain(){var entryFunction=_main;try{var ret=entryFunction(0,0);return exitJS(ret),ret}catch(e){return function(e){if(e instanceof ExitStatus||"unwind"==e)return EXITSTATUS;quit_(1,e)}(e)}}function run(){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(Module.noFSInit||FS.init.initialized||FS.init(),FS.ignorePermissions=!1,TTY.init(),callRuntimeCallbacks(__ATINIT__),callRuntimeCallbacks(__ATMAIN__),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),shouldRunNow&&callMain(),function(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}()))}runDependencies>0||(function(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)cb=Module.preRun.shift(),__ATPRERUN__.unshift(cb);var cb;callRuntimeCallbacks(__ATPRERUN__)}(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout((function(){setTimeout((function(){Module.setStatus("")}),1),doRun()}),1)):doRun()))}if(Module.addOnPostRun=addOnPostRun,Module.ccall=ccall,Module.cwrap=function(ident,returnType,argTypes,opts){var numericArgs=!argTypes||argTypes.every((type=>"number"===type||"boolean"===type));return"string"!==returnType&&numericArgs&&!opts?getCFunc(ident):function(){return ccall(ident,returnType,argTypes,arguments)}},Module.addFunction=function(func,sig){var rtn=getFunctionAddress(func);if(rtn)return rtn;var ret=function(){if(freeTableIndexes.length)return freeTableIndexes.pop();try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError))throw err;throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1}();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError))throw err;setWasmTableEntry(ret,convertJsFunctionToWasm(func,sig))}return functionsInTableMap.set(func,ret),ret},Module.setValue=function(ptr,value,type="i8"){switch(type.endsWith("*")&&(type="*"),type){case"i1":case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(0|Math.min(+Math.floor(tempDouble/4294967296),4294967295))>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;case"*":HEAPU32[ptr>>2]=value;break;default:abort("invalid type for setValue: "+type)}},Module.getValue=function(ptr,type="i8"){switch(type.endsWith("*")&&(type="*"),type){case"i1":case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP64[ptr>>3];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];case"*":return HEAPU32[ptr>>2];default:abort("invalid type for getValue: "+type)}return null},dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)},Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),run(),Module.ready});"object"==typeof exports&&"object"==typeof module?module.exports=Module:"function"==typeof define&&define.amd?define([],(function(){return Module})):"object"==typeof exports&&(exports.Module=Module)}).call(this)}).call(this,require("_process"),require("buffer").Buffer,"/out/vcd.js",arguments[3],arguments[4],arguments[5],arguments[6],"/out")},{_process:151,buffer:64,crypto:72,fs:1,path:144}]},{},[189]); \ No newline at end of file diff --git a/public/vcd.wasm b/public/vcd.wasm new file mode 100644 index 0000000..941033b Binary files /dev/null and b/public/vcd.wasm differ diff --git a/public/vscode.css b/public/vscode.css new file mode 100644 index 0000000..1ea0bed --- /dev/null +++ b/public/vscode.css @@ -0,0 +1,149 @@ +:root { + --font-monospace-family: var(--vscode-editor-font-family); + --font-monospace-weight: var(--vscode-editor-font-weight); + --font-monospace-size: var(--vscode-editor-font-size); + + --link-foreground: var(--vscode-textLink-foreground); + --link-active: var(--vscode-textLink-activeForeground); + + /* UI & Control */ + --input-active-background: var(--vscode-input-background); + --input-active-border: var(--vscode-focusBorder); + --input-active-foreground: var(--vscode-input-foreground); + + --input-error-background: var(--vscode-inputValidation-errorBackground); + --input-error-border: var(--vscode-inputValidation-errorBorder); + --input-error-foreground: var(--vscode-inputValidation-errorForeground); + + --input-foreground: var(--vscode-input-foreground); + --input-background: var(--vscode-input-background); + --input-border: var(--vscode-input-border); + --input-hover: var(--vscode-input-background); + --input-placeholder: var(--vscode-input-placeholderForeground); + --input-radius: 0px; + + --scrollbar-background: var(--vscode-scrollbarSlider-background); + --scrollbar-hover: var(--vscode-scrollbarSlider-hoverBackground); + --scrollbar-active: var(--vscode-scrollbarSlider-activeBackground); + + /* Window */ + --title-bar: #1f1f1f; + --title-color: #fff; + --foreground: var(--vscode-editor-foreground); + --background: var(--vscode-editor-background); + --label: rgb(189, 189, 189); + --shadow: #000; + --border: var(--vscode-input-border); + --window-button-hover: rgba(255,255,255,0.1); + --window-button-active: rgba(255,255,255,0.2); + --window-blur-background: rgba(0,0,0,0.25); + + --window-title-foreground: var(--foreground); + --window-background: var(--sidebar); + --window-border: transparent; + --window-radius: 0px; + + /* Sidebar */ + --sidebar: var(--vscode-sideBar-background); + --sidebar-border: var(--vscode-sideBar-border); + --sidebar-min-width: 280px; + + --sidebar-item-text: var(--vscode-list-inactiveSelectionForeground); + --sidebar-item-border: var(--vscode-input-border); + --sidebar-item-background: var(--sidebar); + --sidebar-item-selected: var(--vscode-list-inactiveSelectionBackground); + --sidebar-item-hover: var(--vscode-list-hoverBackground); + --sidebar-item-max-height: 40px; + --sidebar-item-radix-background: var(--vscode-breadcrumb-background); + + --sidebar-group-text: var(--vscode-sideBarSectionHeader-foreground); + --sidebar-group-border: var(--vscode-sideBarSectionHeader-border); + --sidebar-group-background: var(--vscode-sideBarSectionHeader-background); + + /* Labels */ + --signalSize-background: rgba(0,0,0,0.5); + --signalSize-border: rgba(255,255,255,0.2); + --signalSize-color: var(--foreground); + + /* Color Picker */ + --picker-swatch-size: 15px; + --picker-swatch-cols: 8; + --picker-background: var(--vscode-breadcrumbPicker-background); + --picker-border: var(--vscode-dropdown-border); + + /* Search */ + --search-background: var(--vscode-quickInput-background); + --search-border: var(--border); + --search-panel-background: transparent; + --search-panel-border: var(--vscode-pickerGroup-border); + --search-panel-text: var(--vscode-quickInput-foreground); + --search-label: var(--foreground); + --search-selected-background: var(--vscode-list-inactiveSelectionBackground); + + /* Properties */ + --properties-background: var(--vscode-breadcrumb-background); + --properties-border: var(--border); + + /* Navbar */ + --navBar-background: var(--sidebar); + --navBar-height: 32px; + --navBar-button: transparent; + --navBar-button-text: var(--foreground); + --navBar-group-background: var(--background); + --navBar-preview-background: var(--vscode-scrollbarSlider-background); + --navBar-slider-border: var(--foreground); + + /* Buttons */ + --button: var(--vscode-button-background); + --button-text: var(--vscode-button-foreground); + --button-hover: var(--vscode-button-hoverBackground); + --button-active: var(--vscode-button-hoverBackground); + --button-disabled: var(--vscode-activityBar-background); + --button-disabled-text: var(--vscode-activityBar-inactiveForeground); + + /* Grid Lines */ + --grid-dash: 2; + --grid-space: 4; + --grid-line: var(--vscode-editorIndentGuide-background); + --grid-tick: var(--vscode-editorIndentGuide-activeBackground); + + /* Cursor */ + --cursor: var(--vscode-editorCursor-foreground); + --cursor-ghost: rgba(255, 255, 255, 0.2); + --cursor-width: 2; + + /* X-Axis */ + --axis-height: 38px; + --axis-line: var(--border); + --axis-background: var(--vscode-sideBar-background); + --axis-foreground: var(--foreground); + + /* Signals */ + --signal-highlight: var(--vscode-list-inactiveSelectionBackground); + + /* Colors */ + --accent: var(--vscode-button-background); + --accent-dim: #234175; + --accent-bright: #24c5f7; + --accent-hover: var(--vscode-button-hoverBackground); + + --color-red: #ff5252; + --color-pink: #ff4081; + --color-purple: #e040fb; + --color-deepPurple: #7c4dff; + --color-indigo: #536dfe; + --color-blue: #448aff; + --color-lightBlue: #40c4ff; + --color-cyan: #18ffff; + --color-teal: #64ffda; + --color-green: #69f0ae; + --color-lightGreen: #b2ff59; + --color-lime: #eeff41; + --color-yellow: #ffff00; + --color-amber: #ffd740; + --color-orange: #ffab40; + --color-deepOrange: #ff6e40; + + /* Settings */ + --settings-action-background: var(--background); +} \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 591a031..159ed64 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,26 +1,57 @@ - diff --git a/src/assets/logo.png b/src/assets/logo.png deleted file mode 100644 index f3d2503..0000000 Binary files a/src/assets/logo.png and /dev/null differ diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index 879051a..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - diff --git a/src/hook/utils.js b/src/hook/utils.js new file mode 100644 index 0000000..2f425eb --- /dev/null +++ b/src/hook/utils.js @@ -0,0 +1,34 @@ +/* eslint-disable no-undef */ + +import { Stream } from "stream"; + +/** + * + * @returns {Promise} + */ +async function getVcdStream() { + const ostream = await window.getVcdStream(); + return ostream; +} + +/** + * @returns {Promise} + */ +async function readVcdFile() { + const response = await fetch('cpu.vcd'); + const blob = await response.blob(); + const reader = new FileReader(); + return new Promise((resolve, reject) => { + reader.onload = event => { + const fileContent = event.target.result; + const unintarray = new Uint8Array(fileContent); + resolve(unintarray); + }; + reader.readAsArrayBuffer(blob); + }); +} + +export { + getVcdStream, + readVcdFile +}; \ No newline at end of file diff --git a/vue.config.js b/vue.config.js index 910e297..7664cf5 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,4 +1,14 @@ const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ - transpileDependencies: true + transpileDependencies: true, + chainWebpack: (config) => { + config.plugin('define').tap((definitions) => { + Object.assign(definitions[0], { + __VUE_OPTIONS_API__: 'true', + __VUE_PROD_DEVTOOLS__: 'false', + __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false' + }) + return definitions; + }) + } })